繁体   English   中英

如何使用正则表达式拆分字符串和日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM