2016-04-06 9 views
0

私はちょうどPythonの中で正規表現モジュールを学び始めています。興味深い正規表現のシーケンスを説明するように求められています。正規表現のスラッシュの意味/

/^[a-z0-9_-]{3,16}$/ 

私は前方の英数字を含むハイフンとアンダースコアと、少なくとも3と16桁の数字または文字せいぜいを持つユーザ名のためにその検索をスラッシュ2内のコードを説明することができます。

私の質問は、2つのフォワードスラッシュはどういう意味ですか?私はウェブを試してみたところ、ほとんどのチュートリアルではバックスラッシュの説明がありますが、スラッシュの説明はないようです。お知らせ下さい。ありがとう。

+0

これは、JavaScriptのようないくつかの言語で正規表現自体の区切り文字です。これらのスラッシュで区切られた式には、g、m、i、u、またはyのようなフラグだけが続きます。それは '/'の文字に一致するほか – Redu

+0

/、* * *パイソンには*の意味を持ちません。いくつかの他の言語は –

答えて

0

スラッシュは正規表現の先頭と末尾を表します。これは、Perlはその正規表現表現方法の典型的なものである:

s/<my_regex>/<replaceWith>/ 

Perlはもちろんのために特別に設計された言語である:Perlので

/<my_regex_here>/ 

を、次のようなさまざまなオプションを指定することができます正規表現についてはPerlのような構文を使って正規表現について話すのが一般的です。

0

フォワードスラッシュは、正規表現の開始と終了を区切る仕切りです。スラッシュで他のキャラクターではない理由は、主に大会です。

:?S [-Z0-9 _-] ??グラム

たとえば、あなたの代わりに、従来のスラッシュの疑問符と、このようなvimの中で正規表現を定義することができます

1

スラッシュはセパレータとして使用されます。それらはいくつかのフレーバー(PerlやJavaScriptなど)でのみ使用され、通常はデリミタに変更できます。区切り文字を変更すると、エスケープする必要があるものがあれば変更されます。この場合

sed -E 's/OldUtility.getList.([^)]*)\)([\)]*)/\1\2.getList()/g'

は、私が別の質問のために今日以前に書いた正規表現でこれsedの文を参照してください代替

  • /ため

    • s最初のスラッシュ
    • 正規表現。正規表現に/が必要な場合は、エスケープする必要があります。 /がエスケープする必要がある場合は、可能であれば、別の区切り文字に切り替えることをお勧めします。 \1\2.getList()
    • /第3の最後のスラッシュ
    • 最後に、そこ修飾子だ:地球のためのg
    • /第二のスラッシュその後
    • 、置換があります。
  • +0

    我々はこれらの質問に答えるが、代わりにそれらにフラグを立てるべきではありません^区切り文字としてそれを使用する... – JordanHendrix

    +0

    @Omarjmhは、どのような理由のためにフラグを付けますか?だまされやすい人だその重複 – Laurel

    +0

    ?どのバージョンが閉じられるかは、品質によって決定されます。リンクした質問はJS固有のものです。あなたが私の答えか、別のものを読んでいる場合の動作は、多くのフレーバーの間で共有されるように、これは、一般的に尋ねています。私はそれが十分に近くにあるとは思わない。 – JordanHendrix

    関連する問題