|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近学正则表达式,知道‘|’表示或的意思,就想动手试一下用(r'industr(y|ies)')捕获‘industry’和‘industries’。
结果用re.search可以捕获'industries',而用re.findall只能捕获小括号中的'y'和'ies',要用非捕获式才能在re.findall中捕获‘industries’和‘industry’。
求大神解答为什么‘(y|ies)’在re.findall中的结果和re.search中不一样?
- import re
- string = 'industries and industry'
- re.search(r'industr(y|ies)',string)
- >>><re.Match object; span=(0, 10), match='industries'>
- re.findall(r'industr(y|ies)',string)
- >>>['ies', 'y']
- re.findall(r'industr(?:y|ies)',string)
- >>>['industries', 'industry']
复制代码
findall 专门捕获小括号里的字符
TA就是这个功能
|
|