所以我是正则表达式的新手,我正在尝试编写一个允许我将撇号 ( '
)替换为\'
. 当我在http://myregextester.com上测试它时,我想出的正则表达式适用于我的所有测试用例,但是当我在我的代码中实现它时完全出错。
无论如何,这就是我迄今为止所拥有的:
preg_replace('/((?<!\\)\'+(?=\d\ds\b))|(\b(?<=\w)(?<!\\)\'+(?=\w+\b))/','\'',$text);
它抛出这个错误:
遇到 PHP 错误
严重性:警告
消息:preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 50
我数了二十次,看看哪里)
不匹配,而在我看来,没有。这是我的几个计数之一:
( ( ?<!\\ )'+ ( ?=\d\ds\b ) ) | ( \b ( ?<=\w ) ( ?<!\\ ) '+ ( ?=\w+\b ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14
任何想法,或指出新手无法发现的明显错误将不胜感激。