imm*_*ied 2 python regex string split
我正在尝试使用re匹配以'\n'开头的模式,然后是可能的'real(r8)',然后是零或更多的空格,然后是'function'一词,然后我想要在匹配发生的地方拆分字符串.所以对于这个字符串,
text = '''functional \n function disdat \nkitkat function wakawak\nreal(r8) function noooooo \ndoit'''
Run Code Online (Sandbox Code Playgroud)
我想要:
['functional ',
' disdat \nkitkat function wakawak',
' noooooo \ndoit']
Run Code Online (Sandbox Code Playgroud)
然而,
regex = re.compile(r'''\n(real\(r8\))?\s*\bfunction\b''')
regex.split(text)
Run Code Online (Sandbox Code Playgroud)
回报
['functional ',
None,
' disdat \nkitkat function wakawak',
'real(r8)',
' noooooo \ndoit']
Run Code Online (Sandbox Code Playgroud)
split也返回匹配组.我怎么不这样问?
您可以使用非捕获组,如下所示
>>> regex = re.compile(r'\n(?:real\(r8\))?\s*\bfunction\b')
>>> regex.split(text)
['functional ', ' disdat \nkitkat function wakawak', ' noooooo \ndoit']
Run Code Online (Sandbox Code Playgroud)
注意?:在(?:real\(r8\)).引用Python文档(?:..)
常规括号的非捕获版本.匹配括号内的正则表达式,但在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串.
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |