首页 > 解决方案 > 正则表达式检查偶数个前面的字符

问题描述

我需要确保字符串不会以\'如此使用的负面外观结尾:

\\:'(.+)(?<!\\\\)'

但是,它可能以\\'. 基本上,它可以以偶数个反斜杠结尾'或前面。'\

它是用Java实现的。

标签: javaregex

解决方案


唯一的办法

(?<!\\)(?:\\\\)*'$

解释

 (?<! \\ )          # Not an escape behind us, forces only even escapes ahead
 (?: \\ \\ )*       # Any amount of even escapes
 '                  # Quote 
 $                  # EOS

注释 - 事实上,即使逃跑也不会逃逸任何东西,所以为了强制只有逃跑才能在前面,使用了负面的目光(?<!\\)


推荐阅读