首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免在RegEx拆分结果中捕获组?

如何避免在RegEx拆分结果中捕获组?
EN

Stack Overflow用户
提问于 2015-03-26 05:06:13
回答 1查看 894关注 0票数 3

我试图使用re来匹配以'\n‘开头的模式,后面跟着可能的’r8‘,然后是零或更多的空格,然后是'function',然后我想在匹配发生的地方拆分字符串。所以对于这条绳子,

代码语言:javascript
复制
text = '''functional \n   function disdat \nkitkat function wakawak\nreal(r8) function noooooo \ndoit'''

我想:

代码语言:javascript
复制
['functional ',
 ' disdat \nkitkat function wakawak',
 ' noooooo \ndoit']

然而,

代码语言:javascript
复制
regex = re.compile(r'''\n(real\(r8\))?\s*\bfunction\b''')

regex.split(text)

返回

代码语言:javascript
复制
['functional ',
 None,
 ' disdat \nkitkat function wakawak',
 'real(r8)',
 ' noooooo \ndoit']

split也会返回匹配的组。我怎么才能不让它发生呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-26 05:07:42

您可以使用非捕获组,如下所示

代码语言:javascript
复制
>>> regex = re.compile(r'\n(?:real\(r8\))?\s*\bfunction\b')
>>> regex.split(text)
['functional ', ' disdat \nkitkat function wakawak', ' noooooo \ndoit']

注意?:中的(?:real\(r8\))。引用(?:..)

普通括号的非捕获版本。匹配括号内的任何正则表达式,但组匹配的子字符串在执行匹配后或稍后在模式中引用都无法检索。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29271447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档