私は正規表現をしています。1から3の単語を受け入れる入力テキストがあります。それぞれの単語は最大15語までです。それは正常に動作していますが、私はそれを改善したいと思います。正規表現パターン入力の説明
^[A-Za-z]*[\s]{0,1}[A-Za-z\d\-_]{0,15}[\s]{0,15}[A-Za-z\d\-_]{0,15}$
サンプル(正しい)入力:これは私の パターンです
here you go
the sample
there you are
そして、私は少なくとも一度は、最も3回でそれを反復処理したいhttps://regex101.com/
でテストされています、例のように。私は{1,3}
について知っていますが、どのように私のパターンでそれを使うことができますか?私はこれを試してみましたが、それは動作しません:
^[A-Za-z]*[\s]{0,1}[A-Za-z]*{1,3}$
証明し、試験したいずれの提案は素晴らしい男だろう。 パフォーマンスについて心配する必要はありません(ただし、何か改善があれば感謝します)。私は繰り返し部分が必要です。
かなり明確には聞こえませんが、できるだけパターンを短くしたいのですか? ['^(?:\ s?[A-Za-z \ d_-] {0,15}){1,3} $'](https://regex101.com/r/jG4yP9/1)のように?これは "有効でない"文字列( '_'、' --'、数字...で始まる文字列)にもマッチします。 –
すごく感謝しています。あなたは男です。はい、それは私が必要なものです。 – Franco
@noobは彼の答えに同じパターンを投稿しました。ああ、今それは編集されています。正規表現が本当に必要なものかどうかを再確認してください。ところで、可能な限り最短のものが常に最も正確で効率的なものではない。ところで、 '[A-Za-z \ d_]'を '\ w'に置き換えることができます。正規表現全体は '^ [A-Za-z] +(?:\ s [\ w - ] {0,15}){1,2} $'と書くことができます。 –