python正規表現を使用すると、どのようにtrue/falseを返すことができますか?すべてのPythonのリターンはpython正規表現がtrue/falseを返します
<_sre.SRE_Match object at ...>
python正規表現を使用すると、どのようにtrue/falseを返すことができますか?すべてのPythonのリターンはpython正規表現がtrue/falseを返します
<_sre.SRE_Match object at ...>
Match
オブジェクトは常に真であり、かつ一致するものがない場合None
が返されます。真理をテストするだけです。
if re.match(...):
Ignacio Vazquez-Abramsが正しいです。ただし、re.match()は、Falseに評価されるNoneまたは一致オブジェクトを返します。これは常にTrueとなります。あなたの正規表現にマッチした部分についての情報が必要な場合にのみ、マッチオブジェクトの内容をチェックアウトする必要があります。
これを行う1つの方法は、戻り値に対してテストすることです。あなたが<_sre.SRE_Match object at ...>
を得ているので、これは真であると評価されます。正規表現が一致しない場合、戻り値Noneが返され、falseと評価されます。
import re
if re.search("c", "abcdef"):
print "hi"
出力としてhi
を生成します。
あなたは常に*戻り値を取得します。明示的に何も返されない場合、 'None'がデフォルトです。 –
ありがとうございました - それを修正しました。私はREPLで見ただけで行きました。 –
あなたは本当にあなたがちょうどあなたがすることなく、直接それを使用することができ、if
またはwhile
ための条件としてそれを使用している場合、他の回答は、指摘したように、単にbool
>>> bool(re.search("hi", "abcdefghijkl"))
True
>>> bool(re.search("hi", "abcdefgijkl"))
False
を使用し、True
またはFalse
が必要な場合戻り値:文字列の先頭部分が正規のパターンと一致する場合は、bool()
条件文が論理演算演算を含む場合、 'bool'値が必要です。例:if(re.search( "a"、 "abc")&True): –
@AizzatSuhardi、 '&'はビット演算**です。 'と'は** boolean **演算になります。ありがとう@JohnLaRooy。 –
訂正: '(re.search(" a "、" abc ")、True)' –
re.match(...)はtrueを返します。検索中に文字列内の任意の場所でパターンが確認されます。 –
re.match(...)がNone: ''の代わりに '' 012 ''を使用する方が望ましいかもしれません。 – NuclearPeon
申し訳ありませんが、あなたの答えのコメントに対処しましたか?私には不明ですが、あなたは明確に心配していますか? –