我在正则表达式中的嵌套“+”/“-”前瞻/后视时遇到问题。
假设我想更改'*'
字符串中的'%'
并且假设'\'
转义下一个字符。(将正则表达式转换为 sql 之类的命令 ^^)。
所以字符串
'*test*'
应改为'%test%'
,'\\*test\\*'
->'\\%test\\%'
,但是'\*test\*'
并且'\\\*test\\\*'
应该保持不变。
我试过:
(?<!\\)(?=\\\\)*\* but this doesn't work
(?<!\\)((?=\\\\)*\*) ...
(?<!\\(?=\\\\)*)\* ...
(?=(?<!\\)(?=\\\\)*)\* ...
与上面给出的示例中的“*”匹配的正确正则表达式是什么?
有什么区别(?<!\\(?=\\\\)*)\*
,(?=(?<!\\)(?=\\\\)*)\*
或者如果这些本质上是错误的,那么具有这种视觉结构的正则表达式之间的区别是什么?