黄河大鲤鱼 发表于 2020-5-23 23:28

正则运行结果不对

如图,我认为按逻辑,应该是教程给的结果,但我运行出来的结果却没了首尾的星号,请教一下是怎么回事呢




kesai 发表于 2020-5-23 23:41

分组的问题,findall返回的是括号里的,re.findall(r'(\*.+\*)', s)这样可以,或者改用search,match之类的

hfutwangwei 发表于 2020-5-24 00:24

ret = re.match(r'\*(.+)\*', s)
print(ret.group())

leon406 发表于 2020-5-24 13:21

可以参考二楼,
正则里有括号, findall,是取的分组的数据列表,可以将正则
r"\*.+\*"

search是取匹配的字符串,没有分组

    s = "*This* is *it*!"
    p = r"\*(.+)\*"
    p2 = r"\*.+\*"
    print(re.search(p, s).group())
    print(re.findall(p2, s))

ymhld 发表于 2020-5-24 15:22

把\*放到()里面就行了,资料上是说匹配到那个*到最后一个*的字符
页: [1]
查看完整版本: 正则运行结果不对