[英]How to split string and date using regular expression
这篇文章更接近我的问题,但是它并没有像我希望的那样走:
我有一个像这样的字符串:
'Legal Leaves 2017'
我试图通过使用这种技术分为字符串和年份:
import re
match = re.match(r"([a-z]+)([0-9]+)", 'Legal Leaves 2017', re.I)
match.groups()
但是我没有得到任何结果,这意味着我的正则表达式不正确。 请帮助。
显然, 'Legal Leaves '
不会匹配[az]+
,因为其中有两个空格,并且空格与类[az]
不匹配。
如果您希望两个空格都成为您所匹配的内容的一部分,则想在类中添加一个显式空格或一个\\s
: ([az\\s]+)([0-9]+)
。
如果您希望第一个空格成为您要匹配的内容的一部分,但第二个空格被视为分隔符,则需要通过添加所需的任何分隔符(空格,任何空白,一个或多个空白字符,等)之间: ([az\\s]+)\\s+([0-9]+)
。
如果只想匹配Leaves
,那么就只需要分隔符,但也要使用search
而不是match
: ([az]+)\\s+([0-9]+)
。
但是同时,如果您实际上不了解正则表达式在做什么,那为什么还要在这里使用一个呢? 如果您的格式确实像看起来一样静态,则可以执行以下操作:
>>> s = 'Legal Leaves 2017'
>>> s.rpartition(' ')
('Legal Leaves', ' ', '2017')
import re
match = re.match(r"([a-z ]+) ([0-9]+)", 'Legal Leaves 2017', re.I)
print(match.groups())
output: ('Legal Leaves', '2017')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.