Php I';I’我想把一个不包含在方括号内的以@开头的单词进行预匹配
也就是说,alice应该匹配,但是bob不应该在下面的代码中匹配Php I';I’我想把一个不包含在方括号内的以@开头的单词进行预匹配,php,regex,preg-match,preg-replace-callback,Php,Regex,Preg Match,Preg Replace Callback,也就是说,alice应该匹配,但是bob不应该在下面的代码中匹配 Hello @alice and [@bob](...) 我可以用以下简单的正则表达式来匹配名称:/\@([\w]+)/ 有人知道如何使正则表达式与bob不匹配吗?组索引1包含您想要的字符 在前面使用负数 @(?![^\[\]]*])(\w+) 或 通过改造, \[.*?\]|@(\w+) 或 通过PCRE动词 如果我理解最后一行,正则表达式将匹配[]s中的任何内容,并从本质上消除它,然后我们将字符串的其余部分匹配为以@
Hello @alice and [@bob](...)
我可以用以下简单的正则表达式来匹配名称:/\@([\w]+)/
有人知道如何使正则表达式与bob不匹配吗?组索引1包含您想要的字符 在前面使用负数
@(?![^\[\]]*])(\w+)
或
通过改造,
\[.*?\]|@(\w+)
或
通过PCRE动词
如果我理解最后一行,正则表达式将匹配
[]
s中的任何内容,并从本质上消除它,然后我们将字符串的其余部分匹配为以@
开头的单词。
\[.*?\](*SKIP)(*F)|@(\w+)