问题描述
import re
text1 = '"Python","PHP","Java",'
print(re.findall(r'P(.*?)n',text1))
预期输出:['Python']
实际输出:['ytho']
尽管正则表达式引擎与“ Python”匹配,但findall忽略输出中的“ P”和“ n”。有人可以告诉我这里到底发生了什么
解决方法
您需要一个非捕获组:
re.findall(r'P(?:.*?)n',text1)
请注意在左括号后加上?:
。否则,re
仅捕获与括号中的表达式匹配的字符串部分。