我正在尝试匹配地址的不同表达式:
示例:'398 W. Broadway'
我想匹配W.或E.(东)或Pl。对于地方......等等。
使用此正则表达式非常简单
例如 (W.|West)
。
然而,当我输入
时,python re模块与任何东西都不匹配>>> a
'398 W. Broadway'
>>> x = re.match('(W.|West)', a)
>>> x
>>> x == None
True
>>>
答案 0 :(得分:9)
re.match
匹配输入字符串的开头。
要匹配任何地方,请改用re.search
。
>>> import re
>>> re.match('a', 'abc')
<_sre.SRE_Match object at 0x0000000001E18578>
>>> re.match('a', 'bac')
>>> re.search('a', 'bac')
<_sre.SRE_Match object at 0x0000000002654370>
Python提供了两种基于常规的基本操作 表达式:re.match()仅在开头检查匹配 字符串,而re.search()检查匹配中的任何位置 string(这是Perl默认执行的操作)。
答案 1 :(得分:3)
.match()
限制搜索从字符串的第一个字符开始。请改用.search()
。另请注意,.
匹配任何字符(换行符除外)。如果您想匹配文字句点,请将其转义(\.
而不是普通.
)。
答案 2 :(得分:-1)
withWithout = raw_input("Enter with or without: \n")
if re.match('with|without', withWithout):
print "You enterd :", withWithout, "So I will DO!", withWithout
elif not re.match('with|without', withWithout):
print " Error! you can only enter with or without ! "
sys.exit()