2 つのコンマで区切られた少なくとも 3 つの単語を取得しようとしています。これまでのところ、1 つのコンマで 2 つの単語を一致させることができました
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
しかし、これにコンマと単語を追加するにはどうすればよいですか。同じことを繰り返してみましたが、うまくいきませんでした。
2 つのコンマで区切られた少なくとも 3 つの単語を取得しようとしています。これまでのところ、1 つのコンマで 2 つの単語を一致させることができました
/([A-z]|[0-9])(,{1})([A-z]|[0-9])/
しかし、これにコンマと単語を追加するにはどうすればよいですか。同じことを繰り返してみましたが、うまくいきませんでした。
/^(?:\w+,){2,}(?:\w+)$/
これにより、少なくとも 3 つの単語 ([a-zA-Z0-9_]+) のコンマ区切りリストが取得されます。
/^\s*(?:\w+\s*,\s*){2,}(?:\w+\s*)$/
これは最初のバージョンよりもユーザーフレンドリーなバージョンで、単語間にスペースを入れることができます。
それがPERL 派生の regexである場合、私が遭遇したほとんどの実装と/[^,]+(?:,[^,]+){2,}/
同様に、少なくとも 2 つのコンマが含まれているものに対して適切にテストされます。ただし、コンマの間に何かがある場合に限ります。この(?:)
構造により、キャプチャーせずにグループ化できます。この{2,}
構文は、前のグループの 2 つ以上の一致を指定します。JavaScript では、次のようにテストできます。
/[^,]+(?:,[^,]+){2,}/.test("hello,world,whats,up,next"); // returns true
/[^,]+(?:,[^,]+){2,}/.test("hello,world"); // returns false
これを試してください:
([a-zA-Z0-9]+)(,[a-zA-Z0-9]+){2,}
パフォーマンスの観点からのいくつかの一般的な提案:
これはあなたの問題を解決します、これを試してください
([a-zA-Z0-9],[a-zA-Z0-9],([a-zA-Z0-9]))