我在正则表达式中使用嵌套的'+'/'-'前瞻/后顾时遇到了问题。
假设我想将字符串中的'*'替换为'%',而'\'用于转义下一个字符(类似将正则表达式转换为SQL命令^^)。
所以,字符串
'*test*'
应该改为'%test%'
,'\\*test\\*'
->'\\%test\\%'
,但是'\*test\*'
和'\\\*test\\\*'
应保持不变。
我尝试了:
(?<!\\)(?=\\\\)*\* but this doesn't work
(?<!\\)((?=\\\\)*\*) ...
(?<!\\(?=\\\\)*)\* ...
(?=(?<!\\)(?=\\\\)*)\* ...
如何正确匹配上述示例中的“ * ”?
(?<!\\(?=\\\\)*)\*
与(?=(?<!\\)(?=\\\\)*)\*
之间有什么区别?或者如果这些本质上是错误的,那么具有此类视觉结构的正则表达式之间有什么区别?
\*test\*
保持不变,而不是被转换成*test*
吗? - Gumbo