0

先読みまたはその他のメカニズムを使用して、単一の正規表現で条件付きチェックを実行できるかどうかを尋ねたかったのです。

たとえば、私の正規表現では、前の値が 3 を超えていた場合は次の値を 0 ~ 5 の範囲に、前の値が 3 未満の場合は 0 ~ 9 の範囲を指定したいと考えています。

例えば:

[0-9] 次の一致は、前の値が 5 未満か 5 を超えたかに応じて、[0-5] または [0-9] のいずれかになります。

コードは次のように考えます。

これを A と呼びます--> [0-9][0-9]<-- これを B と呼びます

(A < 5) の場合 B [0-9] それ以外の場合 B [0-5]

これは単一の正規表現として可能ですか?

4

1 に答える 1

6

これは、肯定的な先読みの形式です。

/(?=expression)/

そして、これは否定的な先読みです:

/(?!expression)/

編集

あなたの例では、これは次のような意味になります。

/((?=[5-9]+)[0-5]+)|((?=[0-4]+)[0-9]+)/
于 2009-11-12T10:58:02.053 に答える