【发布时间】:2013-03-08 18:33:57
【问题描述】:
这是我的代码的一部分,用于在 p、span、a 和其他一些标签中查找“1”,也在“{changenumber}”和“{/changenumber}”之间的任何位置,然后将其替换为“2” :
查找代码:
(((<(p|span|a|li|ul|br|/br|tr|td)[^>]*>)|(\{changenumber\}))[^<|(\{/changenumber\})]*)1(.*(<|(\{/changenumber\})))
和替换代码:
\12\7
但有一个问题它排除了[^<|(\{/changenumber\})]这个短语的所有字符:"{","c","h","a"等
我尝试了\b\{/changenumber\}\b 和(?!...),但我做不到!
它如何排除“{changenumber}”这个确切的短语?!
以更简单的方式:
当我们写 [^abc]+ 时,它排除了“a”和“b”和“c”,但是如果我们希望它排除确切的“abc”,该怎么办?!
[^(abc)]+ 不起作用
[^\babc\b]+ 不起作用
(?!abc) 不起作用
(?!\babc\b) 不起作用
...
它的语言是英语
我使用正则表达式是因为它是在 joomla 中的 rereplacer 组件中替换的方式
不可能?!!!
【问题讨论】:
-
你使用什么语言?
-
另外,你为什么要用正则表达式解析 html?