【发布时间】:2015-09-23 14:14:40
【问题描述】:
我有一个格式为:
"The quick __grey__ fox jumps over the lazy __brown__ dog."
我想查找和替换双下划线之间的任何单词(或有时是句子)。
我目前在 PHP 中使用 preg_match_all:
$pattern = '/__(.*)__/';
这很好......直到它在同一行上找到两组双下划线,例如在上面的示例中,它根据我的需要匹配“__grey__”和“__brown__”,而且“__grey__ fox 跳过懒惰的棕色__”,我不想要...
所以我的问题是有没有办法只在第一和第二个实例、第三个和第四个实例等之间进行匹配?
如果以前有人问过这个问题,我深表歉意,但我真的不知道如何以足够简洁的方式来表达这个问题以进行有用的搜索!
提前致谢。
【问题讨论】:
-
$pattern = '/__(.*?)__/';- 使用惰性匹配。已经提出了数千个这样的问题。 -
谢谢!我确信这不是一个独特的问题,但如果你还不知道答案,就很难找到正确的问题:(
-
我将发布一个社区 wiki 答案。找不到好的相关帖子。
标签: php regex preg-match-all