123
では、\d
は1
および3
と一致しますが、2
とは一致しません。 \d
がどのような要件を満たす数字に一致するかどうか疑問に思いましたか?私はPythonスタイルの正規表現について話しています。
Geditの正規表現プラグインはPythonスタイルの正規表現を使用しています。その内容をテキストファイルにしました。
123
1
と3
のみが正規表現\d
にマッチします。 2
は違います。
一般に、間に他の文字がない一連の数字の場合、奇数桁のみが一致し、偶数桁は一致しません。たとえば12345
では、一致は1
、3
および5
です。
[0-9]
常に同じとは限りません\d
。 python3では、[0-9]
は0123456789
文字のみに一致しますが、\d
は[0-9]
および他の数字、たとえば東アラビア数字の٠١٢٣٤٥٦٧٨٩
に一致します。
\d
は、pythonを含むほとんどの正規表現の文法スタイルの任意の1桁の数字と一致します。 正規表現リファレンス
\\d{3}
は、Javaの3桁の任意のシーケンスと一致します。
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>
これは推測にすぎませんが、あなたのエディタは実際には1桁ごとに一致すると思います - 1
2
3
- しかし、123
文字列全体が一致する場合と区別するため、奇妙な一致のみが強調表示されます。
ほとんどの正規表現コンソールは異なる色の連続したマッチを強調しますが、プラグインの設定、端末の制限などの理由で、他のすべてのグループだけが強調表示される場合があります。