gpt4 book ai didi

python - 数字的正则表达式,包括小数和斜线

转载 作者:行者123 更新时间:2023-12-03 15:47:49 25 4
gpt4 key购买 nike

我有一个这样的字符串:
"8 R-301 288/313 0.24 TT-2079 347.48"
现在我想使用正则表达式提取 288/313 和 0.24 所以我写了这个:

r42=re.findall(r"8 +R-301.*",pdf[i])
if len(r42[0].split())>3:
print(r42[0].split())
logbook['R-301 Temp']=r42[0].split()[2]
logbook['R-301 P']=r42[0].split()[3]

所以在理想情况下,数字出现在第二和第三个索引中,我可以得到它。
但我面临的问题是有时 288/313 有像 288/313 这样的空格,第二个数字 0.24 也可以有斜线,所以它可以像 0.24/0.25 或 0.24/0.25。所以上面的正则表达式不起作用。
对于这些带有随机空格的十进制斜杠数字,理想的正则表达式是什么?
注意:字符串的字符之间可以有多个空格。
编辑:
对不起,我在这里忘记了一个细节:
数字可以有 - 就像上面的例子一样,它可以是 -/313 而不是 288/313 或 - 而不是 0.24 或 0.24/- 或 -/0.24。
像这样的东西:
" 8 R-301 288/- - TT-2079 347.48"
我也想针对这些案例。

最佳答案

使用您显示的示例,您能否尝试以下正则表达式。
假设以下是值:

var="""8 R-301 288/313 0.24/0.25 TT-2079 347.48
8 R-301 288 / 313 0.24/0.25 TT-2079 347.48
8 R-301 288 / 313 0.24 / 0.25 TT-2079 347.48
8 R-301 - / 313 -/ 0.25 TT-2079 347.48
8 R-301 288 /313 -/ 0.25 TT-2079 347.48
8 R-301 313 / - -/ 0.25 TT-2079 347.48
8 R-301 288 / 313 0.24/ 0.25 TT-2079 347.48
8 R-301 123/313 -/12123 TT-2079 347.48
8 R-301 123.12/31.23 -/12123 TT-2079 347.48
8 R-301 123/313 -/- TT-2079 347.48
8 R-301 123 12123 TT-2079 347.48
8 R-301 -/123 -/- TT-2079 347.48"""
现在下面是代码:
import re
val = re.findall(r'^\d+\s+R-\d+\s+(.*?)T.*',var,re.M)
for i in val:
re.findall(r'((?:\d+(?:\.\d+)?|-)(?:(?:\s+)?\/(?:\s+)?(?:\d+(?:\.\d+)?|-))?)',i,re.M)
输出如下:
['288/313', '0.24/0.25']
['288 / 313', '0.24/0.25']
['288 / 313', '0.24 / 0.25']
['- / 313', '-/ 0.25']
['288 /313', '-/ 0.25']
['313 / -', '-/ 0.25']
['288 / 313', '0.24/ 0.25']
['123/313', '-/12123']
['123.12/31.23', '-/12123']
['123/313', '-/-']
['123', '12123']
['-/123', '-/-']
说明:为上述正则表达式添加详细说明:
(                               ##Creating 1st capturing group here.
(?:\d+(?:\.\d+)?|-) ##In a non-capturing group matching digits with optional dot digits OR followed by - here.
(?:(?:\s+)?\/ ##In a non-capturing group with optional spaces with / here.
(?:\s+)?(?:\d+(?:\.\d+)?|-))? ##Matching optional spaces with digits and optional digits OR with optional - here.
) ##Closing 1st capturing group here.

关于python - 数字的正则表达式,包括小数和斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67347766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com