正则表达式匹配小括号时出现的问题?
import re
my_sin = re.compile(r'sin\(.+?\)', re.DOTALL)
print(re.findall(my_sin, 'sin(30)'))
trigonometric_functions = re.compile(r'(cos|sin|tan|arcsin|arccos|arctan)\(.+?\)', re.DOTALL)
print(re.findall(trigonometric_functions, 'sin(30)'))
请问这两个函数有什么区别吗?为什么上面的匹配出来有括号,下面的就没了?感觉是 (cos|sin|tan|arcsin|arccos|arctan)
这一部分的问题?
回复
1个回答
test
2024-07-07
python的findall函数,正则中不含有捕获组时,返回匹配结果的列表含有捕获组时,返回捕获组内容的列表上式的括号可以用非捕获组形式(?:cos|sin|tan|arcsin|arccos|arctan)
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容