1
予有這種串的Python - 正則表達式,如何解壓縮?
str = "(\\pt 3 \\out I1, I2 \\img img.jpg)"
我想提取3,I2,I2和img.jpg作爲一個單獨的值(I1,I2和作爲一個值)
我開始這樣
pattern = "\\pt (.)"
re.findall(pattern, str)
我得到第一個值3,但不知道如何提取另外兩個?
予有這種串的Python - 正則表達式,如何解壓縮?
str = "(\\pt 3 \\out I1, I2 \\img img.jpg)"
我想提取3,I2,I2和img.jpg作爲一個單獨的值(I1,I2和作爲一個值)
我開始這樣
pattern = "\\pt (.)"
re.findall(pattern, str)
我得到第一個值3,但不知道如何提取另外兩個?
試試下面的正則表達式
>>> re.findall(r"\\\w+ ([^\\)]+)", str)
['3 ', 'I1, I2 ', 'img.jpg']
你缺少的部分是,你需要了解
[^\\\)]+
一切,除了一個\
和)
\\\w+
2斜線後跟任何單詞,後跟空格你可以使用這個表達式: -
>>> pattern = '\\\w+ ([^\\)]+)'
>>> re.findall(pattern, s)
['3 ', 'I1, I2 ', 'img.jpg']
哪個str'的'部分總是靜態的。即,您能提供更多需要匹配的字符串示例,或者可能提供描述字符串格式的模板。 – ladaghini
這是模板str =「(\\ pt [value1] \\ out [value2 [\\ img value3])」 – Zed