"Python Regex问题与下划线"

2024-10-02 00:40:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用正则表达式进行一些字符串搜索,只有当[a-z,a-z,\u]以“”空格结尾时,我才需要打印它们,但是如果末尾有下划线,它就不会等待空格并执行命令,这就有点麻烦了。在

if re.search(r".*\s\D+\s", string):
    print string

如果我继续

^{pr2}$

它工作得很好,我需要它只在字符串以空格\s结尾时执行它。在

但如果我继续

string = "abc shot0000 _"

然后它不等待空格\s并执行命令。在


Tags: 字符串researchstringif结尾执行命令空格
3条回答

使用$

>>> 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

您使用的是search,这个函数,顾名思义,如果模式出现,就在字符串中搜索,这就是两个字符串中的情况。在

您应该在正则表达式中添加一个$,以搜索字符串结尾:

if re.search(r".*\s\D+\s$", string):
    print string

您需要用$将RE锚定在字符串的末尾:

if re.search(r".*\s\D+\s$", string):
    print string

相关问题 更多 >

    热门问题