2011-08-10 3 views
2

私はそれが範囲を表すことができると知っていますが、例えばここでは[-.\d]は10進数のように思えます。正規表現の前にあるダッシュ記号はどういう意味ですか? また、なぜ[]以外にも、()はありますか? ()の意味は何ですか?Pythonの正規表現は何ですか?

+0

正規表現コンテキスト内の[ - 。\ d]は ' - '、 '。'の文字セットです。 0〜9の数字です。 \ dは正規表現の数字を示します。 – arunkumar

+2

私はそれが現在の答えに言及しているとは思わないが、文字クラス(大括弧)の中でダッシュは範囲を指定することもできます。例えば、 '[a-d]'は 'a'、' b'、 'c'、または' d'と一致します。 '-'は、"あなたの例のように "最初の文字でなければなりません。 –

答えて

6

[-.\d]は([])ダッシュ(-)、期間(.)または番号(\d)のいずれかである一つの文字を見つけます。一致値は、後Matchオブジェクトのgroup()方法を使用してアクセスできるように

周りの括弧は、グルーピングを意味します。

documentation of the re moduleも参照してください。

3

「ダッシュ」を意味します。おそらく、負の数(-0.5)が予想されます。 ()は、マッチをキャプチャしていることを意味します。

+0

キャプチャの意味は?小数点はここでどのようにエンコードされていますか?のように思える。特殊文字があります。 (ドット)あなたは、その後、いくつかのより多くの桁数を、その後、いくつかの数字を持っているポイント10進時にどのように動作しますか? [と]の間の – Trup

+3

は、すべての特殊文字がエスケープされます。だから、あなたが見る場合:([ - 。\ D] +)、それは「任意の数(整数、浮動小数点、負、など)を検索し、再利用のためどこかに保存する」を意味してもよいです。 – Simon

4

-は、それが文字通り(おそらくマイナス記号として使用するダッシュを探して)ダッシュをマッチングされ、ここでは特別なことを意味するものではありません。 .はリテラルでもあり、ドット(おそらく小数点として使用されます)と一致します。 \dは任意の数(0〜9)に一致します。例の末尾に*または+の乗数を追加すると、正の数、負の数、または浮動小数点の数に一致します。

使用されている()括弧は、グループの開始と終了を示し、グループの内容は一致が実行された後に取り出すことができます。

詳細については、http://docs.python.org/library/re.htmlを参照してください。

+0

[] for、then、if()はグループを表していますか? – Trup

+0

[]括弧は、その中の何かに一致する式を作成するために使用されます。例えば ​​'[abc]は、' 'A' OR 'B' OR 'C'と一致します。 'に対しabc'は3つだけの連続した文字' abc'と一致します。 –

+0

so([abc])は(a | b | b)と等価ですか? – Trup

0

[]それは文字クラスを表していることを覚えておいてください。その下のすべての文字は、文字列内に存在する文字と見なされます(\ d +と同様に文字クラス内でエスケープしない限り)。 [\d-+]+この場合、 - と+ inside []は単なるシンボルであり、文字クラスの外側にある+は正規表現の繰り返しシンボルになります。