获取括号内的所有子字符串
我想提取两个字符(括号)之间的所有字符串。
$string = "blah blah blah (blorp) blah blah (bloop) blah blah (bam)";
期望的输出:
['blorp', 'bloop', 'bam']
我不需要任何废话,只需要括号内的所有内容。
I want to extract all strings between two characters (parentheses).
$string = "blah blah blah (blorp) blah blah (bloop) blah blah (bam)";
Desired output:
['blorp', 'bloop', 'bam']
I don't need any of the blah blahs, just everything within parenthesis.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用正则表达式来执行此操作:
这将输出:
我的正则表达式使用非贪婪选择器:
(.*?)
这意味着它将抓取尽可能“少”的内容。这可以防止它吃掉所有的)
并抓住开头(
和结尾)
之间的所有内容(无论多少个单词)。You can do this with a regular expression:
This would output:
My regular expression uses a non-greedy selector:
(.*?)
which means it will grab as "little" as possible. This keeps it from eating up all the)
and grabbing everything between the opening(
and the closing)
how ever many words away.您可以将 preg_match_all 与类似的东西一起使用(只是一个快速草稿......):
You could use preg_match_all with something like (just a quick draft...):
全部使用正则表达式,这是一个没有正则表达式的
all using regex, here's one without regex
如果您想要括号中的所有内容,那么您应该使用正则表达式。在你的情况下,这会做厚:
If you want everything in parenthesis, then you should use regular expressions. In your case, this will do the thick:
http://php.net/manual/en/function.preg-匹配所有.php
http://php.net/manual/en/function.preg-match-all.php