我已经注意到了字边界\bword\b
做时不会括号内工作preg_replace()
在PHP。
具体来说,我想排除的全称>
(其代表>
在HTML),但是由于字边界不触发括号内为[^\b>\b]
任何由本身的那些字符,等的g
或&
,将作为非匹配来检测。 如果你尝试做括号外的匹配, \b
将按预期在PHP即使这个词用开始&
一个非字符。
任何想法/想法来解决这种情况呢?
在PHP中排除,(* SKIP)(* F)是你的朋友
在PHP中,不包括任何吓人简单得益于强大的(*SKIP)(*F)
语法(Perl中也可)。
为了排除>
看着别的东西,你可以这样做:
>(*SKIP)(*F)|something_else
交替的左侧|
匹配完整>
然后故意失败,在此之后,发动机跳到串中的下一个位置。 右侧匹配something_else
,我们知道它是不是>
因为它不是由左边的表达式匹配。 只要确保something_else
是不是通用的,如.*
因为这可能滚过以下所有>
实例。 举例来说,在这里, \w+
将是一个完美的精细图案something_else
,因为它不与冲突>
进一步阅读有关这和其他技术排除在正则表达式模式
如何匹配(或替换)的模式,除了在情况S1,S2,S3 ...
一个解决方案是我自己的问题是:不是做[^word]
条件,检查单词/句子我想是不是紧跟着,我不想这个词。 如:
>(?!>)
对于我的具体情况,它的工作。