2

正規表現:

start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt

私が思う意味:

  1. 「start_」で始まる任意の文字列に一致
  2. 3 文字を超える英数字部分文字列を含む
  3. 次にアンダースコアで区切ります
  4. 3 文字を超える英数字部分文字列を含む
  5. 最後に「.txt」拡張子を持っています

質問:

誰でもこの動作を確認できますか? 「{3,}」が意味することを除いて、ほとんどすべてを良い方法で確認できます。どんな助けでも大歓迎です!

-tsnm

4

5 に答える 5

10

いくつかのコメント -

  1. start\_する必要があります^start\_。そうすれば、文字列の先頭であることが保証されます(途中ではない可能性があります)。
  2. [a-z0-9]{3,}任意の小文字の英数字です。大文字も必要な場合は、それを作成する必要があります[a-zA-Z0-9]。また、3より大きい(等しくない)にしたい場合は、それを作ります{4,}
  3. これはいい
  4. 2と同じ問題
  5. .txt が最後にあることを確認したい場合は、.txt を作成する必要があります\.txt$

私の提案がなければ、これは一致します-

blahblahlbahstart_abc123_abc123.txtblahblahblah

そして、これはそうではありません -

start_ABC123_ABC123.txt

また、「_」は正規表現の特殊文字ではありません。これは、でエスケープしてはならない\ことを意味します。したがって、最終的な正規表現は-

^start_[a-zA-Z0-9]{4,}_[a-zA-Z0-9]{4,}\.txt$

于 2013-06-25T16:34:43.067 に答える
5

あなたはとても近くにいます。あなたがしたように、これを順番に見てみましょう:

start\_

「start_」で始まる任意の文字列に一致

正しい。

[a-z0-9]{3,}

3 文字を超える英数字部分文字列を含む

近い。「英数字の部分文字列が 3 文字以上ある」ことを意味します。

\_

次にアンダースコアで区切ります

正しい。

[a-z0-9]{3,}

3 文字を超える英数字部分文字列を含む

もう一度、閉じます。「英数字の部分文字列が 3 文字以上ある」ことを意味します。

\.txt

最後に「.txt」拡張子を持っています

正しい。

于 2013-06-25T16:30:59.457 に答える
3

あなたは近いと思いますが、完全に正しいわけではありません。

[a-z0-9]{3,}

3 つ以上の小文字または数字に一致します。大文字と小文字を区別しないテキストで正規表現を実行すると、大文字にも一致します。

書かれているように、正規表現はパターンを含む任意の文字列と一致します。文字列全体に一致させたい場合は、文字列の最初と最後にマーカーを使用します。

^start\_[a-z0-9]{3,}\_[a-z0-9]{3,}\.txt$

また、おそらくアンダースコアをエスケープする必要はありません。

于 2013-06-25T16:34:22.907 に答える
1

これは非常に便利なツールです https://addons.mozilla.org/nl/firefox/addon/rext/

そうすれば、自分でテストできます。Web言語でプログラミングする場合、すべての変更を更新する必要があります。これはオンザフライで更新されるため、正規表現を非常に高速に微調整できます:)

于 2013-06-25T16:33:52.473 に答える