为什么我的正则表达式找不到结果?

2024-05-13 07:36:56 发布

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

数据如下:

post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'

这是我的任务代码:

p1 = re.compile(r"post date")
m1 = p1.search(postline) 
if m1:
    month = re.search(r'post date="([\d\W]+)"', postline).group(1)

Tags: 数据代码researchdatepostcompilep1
2条回答

您正在搜索双qoutes",而您的示例是使用单qoutes'。你知道吗

re.search(r'post date="([\d\W]+)"'
                      ^         ^

是的。你知道吗

post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'
          ^      ^

编辑:问题不再在regex中,而是在python中。举个例子:

import re
postline = "post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'"
pattern = "post date='([\d\W]+)'"

p1 = re.compile(pattern)
date = p1.search(postline).group(1) 
print date

输出:

2008-7

你的约会总是采用YYYY-M格式吗?如果是这样的话,那就相应地构建你的模式吧?此模式允许YYYY-MYYYY-MM

>>> import re
>>> postline = "post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'"
>>> pat = r"post date='(\d{4}-\d{1,2})'"
>>> re.search(pat, postline).group(1)
'2008-7'

相关问题 更多 >