我有一个像这样 '6\' 3" ( 190 cm )'
的字符串,我想只使用正则表达式提取 '190 cm'
。我找不到合适的模式来寻找。
我试过了
string = '6\' 3" ( 190 cm )'
pattern = re.compile(r'[^\\( 0-9+ \\)]')
pattern.findall(a)
但它返回
[“'“, '“', '厘米']
感谢您的帮助!
最佳答案
您的表达式中有太多不需要和有害的符号。
使用周围的 []
使 findall
匹配单个字符,这解释了您得到的输出。
这需要重新考虑:转义括号,使用 \d+
匹配一个或多个数字,以及显式的 cm
和空格。
创建一个仅匹配数字+单位的组,使用 search
查找组并显示它。
import re
string = '6\' 3" ( 190 cm )'
pattern = re.compile(r'\( (\d+ cm) \)')
>>> pattern.search(string).group(1)
'190 cm'
关于Python 使用正则表达式捕获字符串中的特定模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54957916/