考虑这个字符串:
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/