0

次のような文字列がある場合

helloworld
worldhello
ollehdlrow

これらすべてのケースに一致する正規表現はありますか? したがって、基本的には、すべての文字を含むすべての文字列に不特定の順序で一致するパターンです。

使ってみた

/[helloworld]{10}/

しかし、これは にも一致するため、明らかな理由で機能しませんeeeeeeeeee

4

1 に答える 1

1

これに正規表現を使用したくないことは間違いありません。

あなたの場合、文字列に文字が存在するかどうかを確認するには、正の先読みを使用する必要があります。(?=a)文字を確認するには、次のようにしますa。それはいいです。文字を含む文字列をチェックしたい場合は、a実行bできます/^(?=.*a)(?=.*b)/。複数の をチェックしたい場合、問題が発生しaます。

この例を表示: http://regex101.com/r/iV2jC8

ご覧のとおり、正規表現は文字「a」を 2 回検索するように「指示」されています。ただし、最初のケースはまだ一致しています。これは、エンジンが最初に「a」を検出した位置を保存せず、次のアサーションでまったく同じ a を検出するためです。これは、3 つの例すべてに当てはまります。したがって、実際には、実際に検証されているものはありません。

次のようなことをしなければなりません: http://regex101.com/r/cR8eR4

おそらく想像できると思いますが、これは大きなパターンではすぐに手に負えなくなります。

これがお役に立てば幸いです。

于 2012-11-06T20:03:22.293 に答える