首页 > 解决方案 > Python正则表达式:中间没有空格

问题描述

我有以下字符串:

“......(一些字符)aaa bbb @@@8/13/2018 ......(一些字符)”

字符串中的@@@代表一些随机字符。@@@的长度未知,可能是 None (只是“aaa bbb 8/13/2018”)。

我的目标是从字符串 (8/13/2018) 和@@@.

我目前使用以下代码:

m = re.search(r'\s.*?([0-9]{1,}/[0-9]{1,}/[0-9]{2,})', str)
m.groups()[0] ## The date
m.start() ## index of @@@

但是正则表达式匹配bbb @@@8/13/2018而不是@@@8/13/2018

我还尝试将正则表达式更改为:

r'\s(?!\s).*?[0-9]{1,}/[0-9]{1,}/[0-9]{2,}'
r'\s(?!\s)*?[0-9]{1,}/[0-9]{1,}/[0-9]{2,}'

但它们都不起作用。

我将不胜感激任何帮助或意见。谢谢你。

标签: regexpython-2.7

解决方案


使用你的正则表达式的一部分,我认为你的意思是这样的

r'\S*([0-9]+/[0-9]+/[0-9]{2,})'

https://regex101.com/r/dxF4sT/1

要找到起始索引,它将是找到匹配项的位置。

请注意,\S将找到所有连续的非空白
您可以将其更改为其他内容,例如[@a-zA-Z]...,只需将其添加到课程中即可。


推荐阅读