我正在尝试查找包含“]”但没有“|”的子字符串在它面前。我怎么能用正则表达式做到这一点?
答案 0 :(得分:4)
/(?<!\|)\]/
是您需要的正则表达式。
?<!
是一个零宽度断言,也称为“负向后看”。这实质上意味着匹配]
,但“看后面”并断言前一个字符不是|
答案 1 :(得分:2)
/(?<!\|)\]/
使用负面的lookbehind。
对于java:
Pattern regex = Pattern.compile("(?<!\\|)\\[");
答案 2 :(得分:1)
非常简单:[^|]\]
。
如果您还想在字符串开头匹配[
,请使用(^|[^|])\]