ん:Pythonの正規表現は、ドットと一致する必要がありますが、それは、私は次のPython 3のコードはありませ
import re
pattern=re.compile(r'\.')
print(pattern.match('abc.de'))
出力は次のとおりです。
None
私が間違って何をやっているの?なぜ正規表現はドットと一致しないのですか?
ん:Pythonの正規表現は、ドットと一致する必要がありますが、それは、私は次のPython 3のコードはありませ
import re
pattern=re.compile(r'\.')
print(pattern.match('abc.de'))
出力は次のとおりです。
None
私が間違って何をやっているの?なぜ正規表現はドットと一致しないのですか?
:
はこちらのドキュメントを参照してください。
文字列の先頭に0個以上の文字がこの正規表現と一致する場合は、対応するMatchObjectインスタンスを返します。文字列がパターンと一致しない場合はNoneを返します。これは長さゼロのマッチとは異なることに注意してください。
の任意の位置での検索のための代わりにsearch
を使用してください。
>>> import re
>>> pattern=re.compile(r'\.')
>>> print(pattern.search('abc.de'))
<_sre.SRE_Match object at 0x7fc7b5823648>
>>> print(pattern.search('abc.de').group())
.
match
は、そうでないと指示しない限り、文字列の先頭に一致するものを探します。ドットは文字列の先頭にないので、見つからない。それは文字列の先頭からチェックmatch
の文書を1としてhttps://docs.python.org/3/library/re.html#re.match
'print(pattern.findall( 'abc.de'))'を試してください。 – depperm