web-dev-qa-db-ja.com

正規表現の "\ d"は数字を意味しますか?

123では、\d1および3と一致しますが、2とは一致しません。 \dがどのような要件を満たす数字に一致するかどうか疑問に思いましたか?私はPythonスタイルの正規表現について話しています。

Geditの正規表現プラグインはPythonスタイルの正規表現を使用しています。その内容をテキストファイルにしました。

123

13のみが正規表現\dにマッチします。 2は違います。

一般に、間に他の文字がない一連の数字の場合、奇数桁のみが一致し、偶数桁は一致しません。たとえば12345では、一致は13および5です。

131
Tim

[0-9]常に同じとは限りません\d。 python3では、[0-9]0123456789文字のみに一致しますが、\d[0-9]および他の数字、たとえば東アラビア数字の٠١٢٣٤٥٦٧٨٩に一致します。

430

\dは、pythonを含むほとんどの正規表現の文法スタイルの任意の1桁の数字と一致します。 正規表現リファレンス

9
Will

\\d{3}は、Javaの3桁の任意のシーケンスと一致します。

7
srajan

Pythonスタイルの正規表現では、\dは任意の個々の数字に一致します。そうではないようなものがある場合は、その特定のシンボルを説明するのではなく、使用しているfull正規表現を入力してください。

>>> import re
>>> re.match(r'\d', '3')
<_sre.SRE_Match object at 0x02155B80>
>>> re.match(r'\d', '2')
<_sre.SRE_Match object at 0x02155BB8>
>>> re.match(r'\d', '1')
<_sre.SRE_Match object at 0x02155B80>
7
Amber

これは推測にすぎませんが、あなたのエディタは実際には1桁ごとに一致すると思います - 123 - しかし、123文字列全体が一致する場合と区別するため、奇妙な一致のみが強調表示されます。

ほとんどの正規表現コンソールは異なる色の連続したマッチを強調しますが、プラグインの設定、端末の制限などの理由で、他のすべてのグループだけが強調表示される場合があります。

4
Doghouse87