「パイプ」文字 (|) のインスタンスにのみ一致するように RegEx を作成しようとしていますが、その後に 1 つ以上のパイプが続きません。したがって、パイプの後にパイプ以外のものが続きます。
私はこれを持っていますが、動作していないようです:
/|(?!/|)
「パイプ」文字 (|) のインスタンスにのみ一致するように RegEx を作成しようとしていますが、その後に 1 つ以上のパイプが続きません。したがって、パイプの後にパイプ以外のものが続きます。
私はこれを持っていますが、動作していないようです:
/|(?!/|)
あなたはpipe
間違って逃げています。backslash
ではなく、を使用する必要がありますslash
。それとは別にnegative look-behind
、パイプが一致しないように を使用する必要もありますlast
。これはおそらくパイプが前になく、後にはありません: -
(?<!\|)\|(?!\|)
通常、正規表現のメタ文字クラスに一致させたい場合は、エスケープするよりも文字クラスを使用することを好みます: -
(?<![|])[|](?![|])
でも、それは私の好みです。
さて、何度も繰り返した後、答えを見つけました。これは、進行せず、パイプが続かない単一のパイプ文字のみに一致します。
(?=(\|(?!\|)))((?<!\|)\|)
(行頭または非パイプ) パイプ (行末または非パイプ) に一致します。
(^|[^|])[|]([^|]|$)