python - 如何使用正则表达式从字符串中提取特定类型的数字?

标签 python regex

考虑这个字符串:

text = '''
4 500,5

12%

1,63%

568768,74832 days in between

34 cars in a row'''

如您所见,有简单数字、中间有空格的数字、有逗号的数字,以及两者都有。因此,4 500,5 被视为一个独立的独立数字。用逗号和空格提取数字很容易,我发现模式如下:

pattern = re.compile(r'(\d+ )?\d+,\d+')

但是,我正在努力提取简单的数字,如 12 和 34。我尝试使用 (?!...)[^...]但这些选项不允许我排除其他数字中不需要的部分。

最佳答案

((?:\d+ )?\d+,\d+)|(\d+(?!\d))

我相信这会做你想做的(正则表达式链接:https://regexr.com/695tc)

要捕获“简单”数字,它会查找 [一个或多个数字],后面没有 [一个空格和另一个数字]。

我进行了编辑,以便您可以根据需要适本地使用捕获组。

关于python - 如何使用正则表达式从字符串中提取特定类型的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69899452/

相关文章:

python - 在 Pandas Python 中连接字符串数据

python - 如何检查 PyObject* 是否指向 numpy.uint8 类型

javascript - 为什么 "g"修饰符在两次调用 test() 时给出不同的结果?

regex - VIM 不 make = be ?在正则表达式中

java - 修剪Java中字符串的可能前缀

Python、Pandas 删除 Excel 中的行

python - Pandas 将 DataFrame2 ROW append 到 DataFrame1 ROW

python - 确定(Windows)上是否存在 PID 的快速方法?

正则表达式提取不在句子开头和两个相邻单词的大写单词

java - java正则表达式可以匹配存在或不存在的字符串吗?