0

我有一项任务需要我用@紧跟在它后面的子词替换以符号结尾的字符模式。因此,presymbol@postsymbol例如,替换将产生postsymbol.

我目前正在使用这种模式'/(^|\s)@([a-z0-9_]+)/'进行替换,但我的测试人员给我的反馈是,将“放在 @ 前面会导致替换失败。

如何修复此模式以正确输出。类似的东西'/(^|\s)(@|"@)([a-z0-9_]+)/'

4

1 回答 1

1
/(^|\s)(@|"@)([a-z0-9_]+)/

如果添加新的匹配组$2则变为$3

您应该做的只是使"可选:

...."?@.... 

或者使用非捕获匹配组:

....(?:@|"@)....

或者可能将其作为另一种选择放入第一组:

....(^|\s|")....
于 2013-03-17T23:01:06.863 回答