Python正则表达式搜索小数位数后没有字符

时间:2018-11-20 03:39:16

标签: python regex

使用re.search查找一个或多个十进制数字,一个可选的K字符,后没有'%'。

尝试过:

re.search (r'(\d+K?)(?!%)', s).group (0)

具有s的以下值:

10K 1%
2% 10K
20% 10K

哪个返回:

10K
10K
2

前两个结果正确,最后一个不正确。我希望数字匹配是贪婪的,并且跳过“ 20%”并匹配“ 10K”。找到了针对Java(++)而非Python的解决方案。感谢您提供的任何提示,已在网上进行了广泛搜索,但答案一直难以捉摸。

2 个答案:

答案 0 :(得分:1)

尝试正则表达式\d+K?(?= |$)

这将检查K后面的空格或行尾。

Regex

答案 1 :(得分:0)

?表示匹配0或1次,将模式替换为(\d+K)(?!%)