我正在尝试编写一个RegEx来匹配'pipe'字符(|)的实例,这些实例后面没有一个或多个其他管道。所以管道后跟管道以外的任何东西。
我有这个,但它似乎没有起作用:
/|(?!/|)
答案 0 :(得分:5)
您错误地逃离了pipe
。您需要使用backslash
,而不是slash
。除此之外,您还需要使用negative look-behind
,以便last
管道不匹配,可能没有管道,但后面没有管道: -
(?<!\|)\|(?!\|)
一般来说,如果我想匹配正则表达式元字符类,我更喜欢使用字符类而不是转义: -
(?<![|])[|](?![|])
但是,这是我的口味。
答案 1 :(得分:0)
好的,经过多次迭代后我找到了答案。这将仅匹配单个管道字符未继续且未跟随管道。
(?=(\|(?!\|)))((?<!\|)\|)
答案 2 :(得分:0)
匹配(管道的起点或非管道)管道(管道末端或非管道)。
(^|[^|])[|]([^|]|$)