繁体   English   中英

Python正则表达式不匹配

[英]Python regex does not match

import re
str2='hello: acb cross'
reg = re.compile('hello: (a*) cross')
m = reg.search(str2)
print m
if m:
   nat= m.group(0)
   print(nat)

在上面的代码片段中,我期望输出为“ hello:acb cross”,如果我执行group(1),则应该为“ acb”。 但是我什么也没得到。 print m返回None。 任何人都可以让我知道它不起作用的原因。

但是,如果我尝试这样的事情,它可以工作:

import re
str1 = "carter notes: dependent on stems"
r = re.compile('carter notes:(.*)stems')
m = r.search(str1)
if m:
   lx = m.group(1)
   #print(m.group(0))
   print(lx)

a*意味着“任何数量的a的”。

.*表示“任何数量(任何单个字符)”。

您的意思是“ a ,后跟任意数量的(任何单个字符)”; 那是a.*

尝试这个:

str2='hello: acb cross'
reg = re.compile('hello: (a.*?) cross')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM