正则表达式查找最后出现的方括号的内容

大家好,</ strong> </ p>

我是 目前正在使用preg_match,我正在尝试提取一些信息用方括号括起来</ strong>。</ p>

到目前为止,我已经使用了这个:</ p>
\ n

/ \ [(。*)] / </ code> </ p>

但我希望它只是最后一次出现的内容 - 或者是第一次出现的内容 ,如果从结尾开始!</ p>

在下面:</ p>

string =“这里有些文字[value_a]更多文字[value_b] ]“</ code> </ p>

我需要得到:</ p>

”value_b“</ code> </ p>
\ n

任何人都可以建议一些可以解决问题的方法吗?</ p>

谢谢!</ strong> </ p>
</ div>

展开原文

原文

Hi Everybody,

I'm Currently using preg_match and I'm trying to extract some informations enclosed in square brackets.

So far, I have used this:

/\[(.*)\]/

But I want it to be only the content of the last occurence - or the first one, if starting from the end!

In the following:

string = "Some text here [value_a] some more text [value_b]"

I need to get:

"value_b"

Can anybody suggest something that will do the trick?

Thanks!

donglv6747
donglv6747 好吧,如果它仅用于最后一场比赛,则不需要-让。*啜饮一切并回溯找到第一个[
接近 9 年之前 回复
dtb81443
dtb81443 没错,会更快......他仍然应该使用preg_match_all。
接近 9 年之前 回复
duanli8391
duanli8391 不需要懒惰的量词,只需使用补充的字符类-请参阅我的答案。事实上,你应该学会尽可能避免懒惰的量词。
接近 9 年之前 回复
dongtuliao6760
dongtuliao6760 使用preg_match_all和您想要的值。更重要的是:让量词懒惰:。*?。
接近 9 年之前 回复

2个回答



匹配:</ p>

  /.* \ [([^]] +  )] / 
</ code> </ pre>

使用 preg_match </ code>(这里不需要 _all </ code>版本,因为你只需要 最后一组)并捕获内部的组。</ p>

您当前的正则表达式,输入,将捕获 value_a]更多文本[value_b </ code>。 这里,第一个。* </ code>吞下一切,但必须回溯一个 [</ code>匹配 - 输入中的最后一个。</ p>
</ div >

展开原文

原文

Match against:

/.*\[([^]]+)\]/

using preg_match (no need for the _all version here, since you only want the last group) and capture the group inside.

Your current regex, with your input, would capture value_a] some more text [value_b. Here, the first .* swallows everything, but must backtrack for a [ to be matched -- the last one in the input.

dongtan9465
dongtan9465 太棒了! 它完美无缺! 我只是有时间写我的生物并得到了完美的回应 - 非常感谢!
接近 9 年之前 回复



如果您只想要数字/字母(无符号),可以使用 \ [([\ w \ d] + )<]和 preg_match_all()</ code>,并将最后一个数组拉为结束变量。 您可以通过在字符类定义中转义它们来添加任何自定义符号。 </ p>
</ div>

展开原文

原文

If you are only expecting numbers/letter (no symbols) you could use \[([\w\d]+)\] with preg_match_all() and pull the last of the array as the end variable. You can add any custom symbols by escaping them in the character class definition.

dqmchw0071
dqmchw0071 凉! 谢谢你的提示!
接近 9 年之前 回复
dongna9185
dongna9185 你可以将正斜杠转义为字符类定义:)所以,像[[\ d + \ / \ d +)\]这样的数字斜杠号
接近 9 年之前 回复
douhuocuo9012
douhuocuo9012 感谢您指出了这一点! 在我的情况下,我正在检索由正斜杠分隔的两个数字,所以我猜它不会起作用。 另外我想保持简单。 但是很高兴知道!
接近 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐