我想忽略空格並解析(int, int) xx (int, int)
這樣的模式。對於爲例,忽略正則表達式中的空格
import re
m = re.match(r"[\s]*\([\s]*(\d+)[\s]*,[\s]*(\d+)[\s]*\)[\s]*xx[\s]*\([\s]*(\d+)[\s]*,[\s]*(\d+)[\s]*\)[\s]*", " (2, 74) xx (5 ,6), physicist")
print (m.group(0)) # (2, 74) xx (5 ,6)
print (m.group(1)) # 2
print (m.group(2)) # 74
print (m.group(3)) # 5
print (m.group(4)) # 6
正如你所看到的,在我的模式有很多[\s]*
代表零個或多個空格。有沒有更簡單的方法來編寫這種模式?
你不能擺脫'\ s',但你可以擺脫''和']'。只需用'\ s'替換'[\ s]'。 –
難道你不能只用're.sub'刪除空白,然後對該字符串進行操作? – timgeb
也許你正在尋找一個詞法分析器(例如'ply')?或者,提供更多的輸入/期望輸出字符串。 – Jan