2

コメントを除いて、少なくとも1つのキリル文字(基本的には/.*[А-я].*/)を含むすべての文字列を検索したい。

コメントは、2文字以上の/文字で始まる文字列または文字列の一部です。現在、トリックの一部を実行するこの正規表現を取得しています。

^(?=^.*?[А-я]+).*?((?=[\/]{2,})|(^(?:(?![\/]{2,}).)*$))

しかし、私は膨満感を減らし、より速い表現をしたいと思っています。

そして追加の質問として:なぜこれが機能しているのか誰かが説明できますか?試行錯誤しながら組み合わせましたが、どこかで変更しようとすると動作しなくなるので、どのように動作するのか完全にはわかりません。

4

1 に答える 1

2

次の正規表現は、2 つのスラッシュが前にない任意のキリル文字に一致します。

(?<!/{2}.*)[А-я]

負の後読みを使用して、前に二重スラッシュを付けないように指定します。

使用している正規表現のフレーバーを指定していませんが、いくつかのフレーバーはルックアラウンドをサポートしていないことに注意してください。たとえば、PCRE (javascript) はそうではありません。正規表現でそれらのうちの 3 つを使用しているので、問題ないと思います。

于 2012-04-07T19:08:47.727 に答える