我有一项任务需要我用@
紧跟在它后面的子词替换以符号结尾的字符模式。因此,presymbol@postsymbol
例如,替换将产生postsymbol
.
我目前正在使用这种模式'/(^|\s)@([a-z0-9_]+)/'
进行替换,但我的测试人员给我的反馈是,将“放在 @ 前面会导致替换失败。
如何修复此模式以正确输出。类似的东西'/(^|\s)(@|"@)([a-z0-9_]+)/'
?
/(^|\s)(@|"@)([a-z0-9_]+)/
如果添加新的匹配组,$2
则变为$3
。
您应该做的只是使"
可选:
...."?@....
或者使用非捕获匹配组:
....(?:@|"@)....
或者可能将其作为另一种选择放入第一组:
....(^|\s|")....