我正在尝试使用正则表达式进行一些字符串搜索,其中我需要打印[az,AZ,_]只有当它们以“”空格结束时,但是如果我在末尾有下划线我会遇到一些麻烦然后它不会等待空间并执行命令。
if re.search(r".*\s\D+\s", string):
print string
如果我保持
string = "abc shot0000 "
它工作正常,我只需要在字符串以空格\s
结尾时执行它。
但如果我保持
string = "abc shot0000 _"
然后它不等待空格\s
并执行命令。
答案 0 :(得分:2)
你正在使用search
这个函数,就像名字所说的那样,如果模式出现就在你的字符串中搜索,并且你的两个字符串就是这种情况。
您应该在正则表达式中添加$
以搜索字符串的结尾:
if re.search(r".*\s\D+\s$", string):
print string
答案 1 :(得分:1)
您需要使用$
:
if re.search(r".*\s\D+\s$", string):
print string
答案 2 :(得分:1)
使用$
:
>>> strs = "abc shot0000 "
>>> re.search(r"\s\w+\s$", strs) #use \w: it'll handle A-Za-z_
<_sre.SRE_Match object at 0xa530100>
>>> strs = "abc shot0000 _"
>>> re.search(r"\s\w+\s$", strs)
#None