Python 正则表达式:使用(锚字符串+;表达式)进行搜索。但是只提取表达式
嗨,我一直在使用一个命令行工具,它在执行时返回一些字符串。我只想要一部分Python 正则表达式:使用(锚字符串+;表达式)进行搜索。但是只提取表达式,python,regex,Python,Regex,嗨,我一直在使用一个命令行工具,它在执行时返回一些字符串。我只想要一部分 'Deskew 1.20 (2016-09-01) by Marek Mauder x64\r\n http://galfar.vevb.net/deskew/\r\nLoad input file - time taken: 192,956 us\r\n Preparing input image (1514538.png) ...\r\nCalculating skew angle...\r\nSkew d
'Deskew 1.20 (2016-09-01) by Marek Mauder x64\r\n
http://galfar.vevb.net/deskew/\r\nLoad input file - time taken: 192,956
us\r\n
Preparing input image (1514538.png) ...\r\nCalculating skew
angle...\r\nSkew detection - time taken: 2,854,167 us\r\nSkew angle found:
-0.50\r\nSkipping deskewing step, skew angle lower than threshold of
80.00\r\nSave output file - time taken: 68,184 us\r\nDone!\r\n'
对于我正在做的实验,性能是最重要的因素。我只想搜索
Skew angle found: -0.50
为此,我使用了这个表达式(找到的倾斜角度:[-+]?\d*\.\d+\d+$)
但我真正需要的是它的签名浮动部分。但是当我只使用[-+]?\d*\.\d+\d+$
表达式时,它还会返回整个字符串中的其他数字。我知道一种方法可以是先搜索,然后只提取该字符串中的浮点值。但这似乎不是最理想的方式。是否有任何方法(Regex)可以精确定位找到的倾斜角度位置,并且只提取浮动。因为这样我希望我可以编译正则表达式并更快地提取
请建议使用re.search()功能:
import re
text = '''Deskew 1.20 (2016-09-01) by Marek Mauder x64\r\n
http://galfar.vevb.net/deskew/\r\nLoad input file - time taken: 192,956
us\r\n
Preparing input image (1514538.png) ...\r\nCalculating skew
angle...\r\nSkew detection - time taken: 2,854,167 us\r\nSkew angle found:
-0.50\r\nSkipping deskewing step, skew angle lower than threshold of
80.00\r\nSave output file - time taken: 68,184 us\r\nDone!\r\n'''
skew_angle = re.search(r'Skew angle found:\s*(-?\d+(\.\d+)?)', text).group(1)
print(skew_angle)
输出:
-0.50
听起来你好像想找人帮忙。或者只是把捕获括号放在你想要的位上,而不是整个模式。例如,请参阅刚刚在regex101中测试以匹配浮点值:(\d.\d+)@jornsharpe。请先回答以下问题:)@F.Leone谢谢。但是这个数字也可以是正的,也可以是这样的。“23.4”检查上面的答案。:)@F.您的解决方案仅适用于负数、一个整数和点后有多个数字的数字。