Python 正则表达式 - 不匹配字符串末尾的数字

标签 python regex expression

这对某人来说真的是很快的标记...

这是我的字符串:

Jan 13.BIGGS.04222 ABC DMP 15

我要匹配:

  1. 日期在前面(mmm yy)格式
  2. 第二个字段中的名称
  3. 末尾的数字。可能有 1 到 3 个。

这是我目前所拥有的:

(\w{3} \d{2})\.(\w*)\..*(\d{1,3})$

通过大量使用 http://www.pythonregex.com/我可以匹配“5”,但不能匹配“15”。

我做错了什么?

最佳答案

使用.*?非贪婪匹配.*:

In [9]: re.search(r'(\w{3} \d{2})\.(\w*)\..*?(\d{1,3})$', text).groups()
Out[9]: ('Jan 13', 'BIGGS', '15')

如果没有问号,.* 会匹配尽可能多的字符,包括您要用\d{1,3} 匹配的数字。

关于Python 正则表达式 - 不匹配字符串末尾的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589845/

相关文章:

c - 计算算术数组下标表达式作为 C 中条件运算符的操作数的一部分

python - 卷积后切片,-1 索引不起作用

java - 正则表达式适用于在线 validator ,但在 java checkstyle 中失败

r - 有没有办法在 "expression"中正确显示 "paste"?

php - 删除空 <span> 标签的正则表达式

regex - 如何从 .maildir/new/自定义主题中删除邮件?

javascript - 如何使用用户的输入从对象中检索值? ( Angular )

python - 找不到文件 <Python.h>

python - 如何从 BeautifulSoup 下载图片?

python - 打包 numpy 数组的更好方法?