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

use*_*878 0 python regex string split

这篇文章更接近我的问题,但它确实是这样,我有希望:

如何将字符串拆分为文本和数字?

我有一个字符串,如下所示:

'Legal Leaves 2017'
Run Code Online (Sandbox Code Playgroud)

我试图通过使用这种技术分裂成字符串和年份:

import re
match = re.match(r"([a-z]+)([0-9]+)", 'Legal Leaves 2017', re.I)
match.groups()
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何结果,这意味着我的正则表达式不正确.请帮助.

aba*_*ert 6

显然,'Legal Leaves '不会匹配[a-z]+,因为它有两个空格,并且空格与类不匹配[a-z].

如果您希望两个空格都是您匹配的一部分,则需要向类中添加显式空格或a \s: ([a-z\s]+)([0-9]+).

如果您希望第一个空格是您匹配的一部分,但第二个空格要被视为分隔符,您需要通过添加所需的任何分隔符(空格,任何空格,一个或多个空白字符,介于两者之间:([a-z\s]+)\s+([0-9]+).

如果你只想匹配Leaves,那么你只需要分隔符,但你也想使用search而不是match:([a-z]+)\s+([0-9]+).


但与此同时,如果你真的不明白你用正则表达式做了什么,为什么你甚至在这里使用它?如果你的格式真的像它看起来一样静态,你可以这样做:

>>> s = 'Legal Leaves 2017'
>>> s.rpartition(' ')
('Legal Leaves', ' ', '2017')
Run Code Online (Sandbox Code Playgroud)