我有看起来像这样的数据:
string = 'composition (irreg.): 13/16 × 2 3/4" (2 × 7 cm); page: 8 3/8 × 6 7/8" (21.3 × 17.4 cm)'
我想编写一个正则表达式来捕获带有括号的字符串的第一次出现cm
。因此,在上面的示例中,我想要一个捕获(2 × 7 cm)
.
到目前为止,我有这个不太有效的正则表达式:
>>> pattern = re.compile(r'\(.*?.*cm\).*?')
>>> result = pattern.search(string)
>>> match = result.group(0)
'(irreg.): 13/16 × 2 3/4" (2 × 7 cm); page: 8 3/8 × 6 7/8" (21.3 × 17.4 cm)'
我只能使用什么正则表达式来匹配(2 × 7 cm)
?
更改.*
为[()*]
使其不会跨多个括号匹配。
您也不需要.*?
在要匹配的括号之后。因为它是非贪婪的,所以它不匹配任何东西。
pattern = re.compile(r'\([^()]*cm\)')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句