我要匹配'|| C \ n'在以下字符串中:
|| A || B || C \n
使用正则表达式,例如'\ | \ | not(\ | \ |)。*?\ n',这样所有'||'除了最后一个除外。
这是怎么做到的?
答案 0 :(得分:0)
您不能只寻找2条,然后确保没有其他双条。
首先必须防止出现三重杠 |||
。
\|\|(?!\|)[^|]*(?:\|(?!\|)[^|]*)*$
可读版本
\|\| # Double bar
(?! \| ) # Cannot be a third bar
[^|]* # Optional non-bars
(?: # Cluster
\| # Bar
(?! \| ) # if not followed by bar
[^|]* # Optional non-bars
)* # End, optionally 0 to many times
$ # EOS