に含まれている場合にtrueを返します私はこのような正規表現を持っている:単語がバー、バズまたは悪いが含まれている場合Pythonの再:正規表現は、文字列
regexp = u'ba[r|z|d]'
関数はtrueを返す必要があります。要するに は、私はそれを実現することができますどのようにPythonの
'any-string' in 'text'
のための正規表現のアナログが必要ですか?ありがとう!
に含まれている場合にtrueを返します私はこのような正規表現を持っている:単語がバー、バズまたは悪いが含まれている場合Pythonの再:正規表現は、文字列
regexp = u'ba[r|z|d]'
関数はtrueを返す必要があります。要するに は、私はそれを実現することができますどのようにPythonの
'any-string' in 'text'
のための正規表現のアナログが必要ですか?ありがとう!
import re
word = 'fubar'
regexp = re.compile(r'ba[rzd]')
if regexp.search(word):
print 'matched'
私は、正確な文字列( 'xyz')を検索し、これを行うためのより効率的な方法を知りたがっている同様の場合に取り組んでいます。pythonの' 'xyz 'をgiven_text'で使うか、 re.compile(r'xyz ')。検索(given_text) '? – bawejakunal
'[]'角括弧には文字クラスが含まれているので、あなたもまた一致します:>>> word = 'ba |'; regexp.search(word) <_sre.SRE_Matchオブジェクト(0x101030b28)>。すべてのパイプシンボルを削除することができます。 – radtek
Match
オブジェクトは常に真であり、一致するものがなければNone
が返されます。真理をテストするだけです。
コード:
>>> st = 'bar'
>>> m = re.match(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
...
'bar'
出力=
あなたはsearch
機能
>>> st = "bar"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m is not None:
... m.group(0)
...
'bar'
とregexp
場合は
>>> st = "hello"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
... else:
... print "no match"
...
no match
よりも、見つからない場合
@bukzorがst = foo bar
よりもマッチした場合には動作しません。だから、そのより適切なre.search
を使用する。
それは検索文字列に一致する場合、SRE_matchオブジェクトを返します検索を使用する:
あなたはこのような何かを行うことができます。
>>> import re
>>> m = re.search(u'ba[r|z|d]', 'bar')
>>> m
<_sre.SRE_Match object at 0x02027288>
>>> m.group()
'bar'
>>> n = re.search(u'ba[r|z|d]', 'bas')
>>> n.group()
ない場合、それはなし
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
n.group()
AttributeError: 'NoneType' object has no attribute 'group'
を返さないし、もう一度証明するためにそれを印刷する:
>>> print n
None
ここで何をしたいん機能だ:
import re
def is_match(regex, text):
pattern = re.compile(regex, text)
return pattern.search(text) is not None
正規表現検索メソッドが返す成功の場合はオブジェクト、文字列内にパターンが見つからない場合はNoneを返します。そのことを念頭に置いて、検索が私たちに何かを返す限り、Trueを返します。
例:
>>> is_match('ba[rzd]', 'foobar')
True
>>> is_match('ba[zrd]', 'foobaz')
True
>>> is_match('ba[zrd]', 'foobad')
True
>>> is_match('ba[zrd]', 'foobam')
False
真
返しちょうど ''ブール(re.search( 'BA [RZD]'、「sometextを使用しています')) ''。 –