好的,因此,我尝试使用正则表达式来匹配字符的实例,前提是该字符没有被转义(带有反斜杠),并决定使用负向后看,如下所示:
(?<!\\)[*]
如分别使用诸如foo*
and的字符串,此操作成功和失败foo\*
。
但是,它不适用于诸如之类的字符串foo\\*
,即-特殊字符前面带有反斜杠,以转义另一个反斜杠(本身是转义的转义序列)。
仅当特殊字符前面带有奇数个反斜杠时,才可以使用负向后看(或其他方法)跳过特殊字符吗?
我找到了以下解决方案,该解决方案NSRegularExpression
适用于我尝试过的支持负向后看的每个正则表达式实现:
(?<!\\)(?:(\\\\)*)[*]
在这种情况下,第二个不匹配的括号匹配任何反斜杠对,从而有效地消除了它们,此时负向后看可以按预期比较任何剩余的(奇数编号)反斜杠。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句