如何使用RegEx在Python中搜索一些数字?



我有一个很大的文字和数字。在文本中有多行像这样:

线性回归完成。值:123.235

当然,数字在文档中是变化的。问题是:我真的需要这些数字。但需要年龄经历100.000线,让所有的数字每手。我试过正则表达式,但我不擅长正则表达式。有人能帮忙吗?

import re
file = open('filename.txt', 'r')
x = re.findall("value", file)
print(value)

如果你能帮我得到值之后的所有数字,那就太好了。

我们可以这样使用re.findall:

with open('filename.txt', 'r') as file:
data = file.read()
nums = re.findall(r'bvalue:s*(d+(?:.d+)?)', data)

给定以下包含Linear regression is done. value: <value>sample.txt文件,6次:

sample.txt:

Linear regression is done. value: 000.00 ssdfsdfsdfhklshdfkhskldhflsdf
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
Linear regression is done. value: 123.12 doloremque, Linear regression is done. value: 0.0123 eaque
dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem
ipsum quia Linear regression is done. value: 234.23 dolor sit amet, consectetur, adipisci velit, sed
quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad
minima veniam, quis nostrum exercitationem ullam corporis suscipit Linear regression is done. value: 345.34 laboriosam,
nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam
nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
lskdfhlshdfl Linear regression is done. value: 456.45

这是一种方法:

import re
REGEX = 'Linear regression is done. value: [+-]?([0-9]+.?[0-9]*|.[0-9]+)'
if __name__ == '__main__':
numbers_in_text = []
with open('sample.txt', 'r') as file:
for line in file:
numbers_in_line = re.findall(REGEX, line)
numbers_in_text.extend(numbers_in_line)

print(numbers_in_text)
assert 6 == len(numbers_in_text), 'It is not reading all the numbers'

打印:

['000.00', '123.12', '0.0123', '234.23', '345.34', '456.45']

最新更新