【发布时间】:2014-06-06 22:28:43
【问题描述】:
我想匹配所有出现的 pony 单词,但以下情况除外:
- [url=pony.com]pony[/url]
- [url]小马.com[/url]
在综合中,匹配项应该是:
pony en pony [url=pony.com]pony[/url], también tengo que pony [url=pony.com ]pony[url], y no olvidar a [url]pony.com[/url]
为了实现目标,我创建了这个正则表达式:
(?!\[url[^\]]*?\])(pony)(?![^\[]*?\[\/url\])
但是,出于某种原因,匹配项如下:
pony en pony [url=pony.com]pony[/url], también tengo que pony [url= pony.com]pony[url], y no olvidar a [url]pony.com[/url]
为什么会这样?我的想法首先是找到正确的出现,然后使用 php 替换它们。
【问题讨论】:
-
如果要全部替换,请使用 preg_replace() 而不是在一个函数中找到它们并在另一个函数中替换它们
-
要做到这一点,你必须匹配你想要避免的:
/thatIdontwant|pony/ -
@MarkBaker,这样做我认为我需要一个正则表达式,在这一点上,这就是这个问题的原因
-
javascript 或 PHP - 它是什么?
-
@jfriend00,抱歉,已删除 Javascript 标记。