在这种情况下,我试图使用regex替换文本块中的一堆标记,但我也希望允许用户转义任何标记。
注意:我想避免向前看/向后看,因为Safari不支持它
现场示例:https://regex101.com/r/mDGs3C/1
Welcome {{ PLAYER_NAME }} to the event
使用替换,这将呈现
Welcome Richard to the event
为此,我使用了以下regex,它似乎工作正常。
/{{s*PLAYER_NAMEs*}}/gm
但是我也希望能够逃脱的能力,所以下面的
Welcome {{ PLAYER_NAME }} to the event, you can use tags in here such as \{{ PLAYER_NAME }}
我想输出为。。。
Welcome Richard to the event, you can use tags in here such as {{ PLAYER_NAME }}
因此,我尝试在正则表达式的开头使用以下内容来声明,如果它包含双反斜杠,我不希望它匹配。
/[^\]{{s*PLAYER_NAMEs*}}/gm
这个几乎有效,但在某些情况下,它会切断前一个单词的最后一个字母,看看我的例子,可以看到e被切断了单词welcome
https://regex101.com/r/mDGs3C/1
捕获非斜杠并将其放回替换中:
操作 | 参数|
---|---|
搜索 | ([^\]){{s*PLAYER_NAMEs*}} |
替换 | $1 Richard |