正規表現:
start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
私が思う意味:
- 「start_」で始まる任意の文字列に一致
- 3 文字を超える英数字部分文字列を含む
- 次にアンダースコアで区切ります
- 3 文字を超える英数字部分文字列を含む
- 最後に「.txt」拡張子を持っています
質問:
誰でもこの動作を確認できますか? 「{3,}」が意味することを除いて、ほとんどすべてを良い方法で確認できます。どんな助けでも大歓迎です!
-tsnm
正規表現:
start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt
私が思う意味:
質問:
誰でもこの動作を確認できますか? 「{3,}」が意味することを除いて、ほとんどすべてを良い方法で確認できます。どんな助けでも大歓迎です!
-tsnm
いくつかのコメント -
start\_
する必要があります^start\_
。そうすれば、文字列の先頭であることが保証されます(途中ではない可能性があります)。[a-z0-9]{3,}
任意の小文字の英数字です。大文字も必要な場合は、それを作成する必要があります[a-zA-Z0-9]
。また、3より大きい(等しくない)にしたい場合は、それを作ります{4,}
\.txt$
。私の提案がなければ、これは一致します-
blahblahlbahstart_abc123_abc123.txtblahblahblah
そして、これはそうではありません -
start_ABC123_ABC123.txt
また、「_
」は正規表現の特殊文字ではありません。これは、でエスケープしてはならない\
ことを意味します。したがって、最終的な正規表現は-
^start_[a-zA-Z0-9]{4,}_[a-zA-Z0-9]{4,}\.txt$
あなたはとても近くにいます。あなたがしたように、これを順番に見てみましょう:
start\_
「start_」で始まる任意の文字列に一致
正しい。
[a-z0-9]{3,}
3 文字を超える英数字部分文字列を含む
近い。「英数字の部分文字列が 3 文字以上ある」ことを意味します。
\_
次にアンダースコアで区切ります
正しい。
[a-z0-9]{3,}
3 文字を超える英数字部分文字列を含む
もう一度、閉じます。「英数字の部分文字列が 3 文字以上ある」ことを意味します。
\.txt
最後に「.txt」拡張子を持っています
正しい。
あなたは近いと思いますが、完全に正しいわけではありません。
[a-z0-9]{3,}
3 つ以上の小文字または数字に一致します。大文字と小文字を区別しないテキストで正規表現を実行すると、大文字にも一致します。
書かれているように、正規表現はパターンを含む任意の文字列と一致します。文字列全体に一致させたい場合は、文字列の最初と最後にマーカーを使用します。
^start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt$
また、おそらくアンダースコアをエスケープする必要はありません。
これは非常に便利なツールです https://addons.mozilla.org/nl/firefox/addon/rext/
そうすれば、自分でテストできます。Web言語でプログラミングする場合、すべての変更を更新する必要があります。これはオンザフライで更新されるため、正規表現を非常に高速に微調整できます:)