【发布时间】:2018-11-20 03:39:15
【问题描述】:
使用 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。感谢您对此提供任何提示,在网上进行了广泛搜索,但答案一直难以捉摸。
【问题讨论】:
-
单词边界是否重要?
\b(\d+K?)(?!%)\b可能会有所帮助。 -
@ggorlen 不,不幸的是他们不是。它可能是像 10K 这样的独立值,也可能是像 100 这样的数字。我正在尝试从原理图中解析一个电阻值,它可能只是一个电阻值,但也可能有百分比容差,按任意顺序,可能没有空格介于两者之间。