-2

正規表現の助けが必要です。

次のようなリストがあります。

/hours_3203
/hours_3204
/hours_3205
/hours_3206
/hours_3207
/hours_3208
/hours_3309
/hours_3310
/hours_3211

この正規表現を使用して、32 または 33 で始まるすべてのエントリを検索しています。

/hours_3[23]/

これは機能しています。

しかし、このリストのマッチングから除外する 必要があると言われたとき、私は変化球を投げられました.hours_3211

hours_3[23]all に一致するように正規表現を調整して、 に一致しないようにするにはどうすればよい/hours_3211ですか?

または、次のようなリストがある場合:

/hours_3412
/hours_3413
/hours_3414
/hours_3415
/hours_3516
/hours_3517
/hours_3518
/hours_3519

私は次の正規表現を使用しています:

/hours_3[45]/

hours_34xすべてを見つけて/hours_35x

これを調整する方法:

/hours_3[45]/

上記を検索するだけでなく検索/一致するには/hours_3211??

4

3 に答える 3

4

hours_3[23]all に一致するように正規表現を調整して、 に一致しないようにするにはどうすればよいhours_3211ですか?

否定先読みサブパターンの挿入を使用できます。

/hours_3(?!211)[23]/

(?!211)許可しないことを許可211しないための否定的な先読みです。hours_3hours_3211

于 2016-05-02T22:16:01.380 に答える
1

このようなものになる2番目の正規表現に3211を追加すると仮定しています....

hours_(3[45]|3211)

最初のものは否定的な先読みです

hours_3[23](?!11)
于 2016-05-02T22:22:04.633 に答える
1

hours_3[23]all に一致するように正規表現を調整して、 に一致しないようにするにはどうすればよいhours_3211ですか?

否定先読みを使用する(?!):

/hours_3(?!211)[23]/

/hours_3[45]/上記を見つけるためにどのように調整でき/hours_3211ますか?

交互に使用|:

/hours_3(?:[45]|211)/

編集:

より適切には、上記は一致するかどうかのみを指定します。実際の完全な一致を返したい場合は、次.*のように RegExp の末尾に追加します。

/hours_3(?!211)[23].*/
/hours_3(?:[45]|211).*/
于 2016-05-02T22:24:34.687 に答える