正则表达式上的Python拆分字符串 [英] Python split string on regex
本文介绍了正则表达式上的Python拆分字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用正则表达式拆分字符串.
Friday 1Friday 11 JAN 11
我想要实现的输出是
['Friday 1', 'Friday 11', 'JAN 11']
到目前为止,我的代码片段没有产生预期的结果:
<预><代码>>>>进口重新>>>p = re.compile(r'(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\s*\d{1,2}')>>>filter(None, p.split('Friday 1Friday 11 Jan 11'))['星期五'、'星期五'、'1 月 11 日']我的正则表达式有什么问题?
解决方案
问题在于捕获括号.此语法: (?:...)
使它们无法捕获.试试:
p = re.compile(r'((?:Friday|Saturday)\s*\d{1,2})')
I'm trying to split a string using a regular expression.
Friday 1Friday 11 JAN 11
The output I want to achieve is
['Friday 1', 'Friday 11', ' JAN 11']
My snippet so far is not producing the desired results:
>>> import re
>>> p = re.compile(r'(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\s*\d{1,2}')
>>> filter(None, p.split('Friday 1Friday 11 JAN 11'))
['Friday', 'Friday', ' JAN 11']
What am I doing wrong with my regex?
解决方案
The problem is the capturing parentheses. This syntax: (?:...)
makes them non-capturing. Try:
p = re.compile(r'((?:Friday|Saturday)\s*\d{1,2})')
这篇关于正则表达式上的Python拆分字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文