如果我想从句子的编号中拆分字符串: "It was amazing in 2016"
我用:
re.split('\s*((?=\d+))
out: 'It was amazing in', '2016'
Run Code Online (Sandbox Code Playgroud)
现在我想做相反的事情,所以如果一个句子以一个数字开头,然后跟着一个字符串,比如: '2016 was amazing'
我希望结果是: '2016', 'was amazing'
使用环视,您可以在两种情况下使用单个正则表达式:
\s+(?=\d)|(?<=\d)\s+
Run Code Online (Sandbox Code Playgroud)
代码:
>>> str = "It was amazing in 2016"
>>> re.split(r'\s+(?=\d)|(?<=\d)\s+', str)
['It was amazing in', '2016']
>>> str = "2016 was amazing"
>>> re.split(r'\s+(?=\d)|(?<=\d)\s+', str)
['2016', 'was amazing']
Run Code Online (Sandbox Code Playgroud)
正则表达式分解:
\s+ - 匹配 1 个或多个空格(?=\d) - 断言下一个字符是数字的后视| - 或者(?<=\d) - 断言前一个字符是数字的后视\s+ - 匹配 1 个或多个空格| 归档时间: |
|
| 查看次数: |
4085 次 |
| 最近记录: |