需要一个只匹配管道字符的单个实例的RegEx

时间:2013-02-07 16:08:30

标签: regex

我正在尝试编写一个RegEx来匹配'pipe'字符(|)的实例,这些实例后面没有一个或多个其他管道。所以管道后跟管道以外的任何东西。

我有这个,但它似乎没有起作用:

/|(?!/|)

3 个答案:

答案 0 :(得分:5)

您错误地逃离了pipe。您需要使用backslash,而不是slash。除此之外,您还需要使用negative look-behind,以便last管道不匹配,可能没有管道,但后面没有管道: -

(?<!\|)\|(?!\|)

一般来说,如果我想匹配正则表达式元字符类,我更喜欢使用字符类而不是转义: -

(?<![|])[|](?![|])

但是,这是我的口味。

答案 1 :(得分:0)

好的,经过多次迭代后我找到了答案。这将仅匹配单个管道字符未继续且未跟随管道。

(?=(\|(?!\|)))((?<!\|)\|)

答案 2 :(得分:0)

匹配(管道的起点或非管道)管道(管道末端或非管道)。

(^|[^|])[|]([^|]|$)