2013-05-03 97 views
0

我想寫一個正則表達式在解析器中使用。具體來說,我希望能夠解析格式,像這樣的字符串:正則表達式的問題,蟒蛇

[SOME-WORD "Quoted string"] 

目前,我想下面的表達式:我使用python

(?P<capital-item> 
\[SOME-WORD(\ ?)\" 
    (?P<quoted-string>\w+) 
\"(\ ?)\]) 

,並re.compile得到一臺掃描儀。編譯完成後,正則表達式與我上面給出的示例字符串不匹配。我在這裏搞什麼?

+0

對不起,錯字。那不是 – blueberryfields 2013-05-03 13:47:26

+2

'\ w'與「Quoted」和「string」之間的空格不匹配。 '\ w'相當於'[a-zA-Z0-9_]'(無空格)。 – 2013-05-03 13:49:22

+3

組名必須是有效的Python標識符。 「大寫字母」和「引用字符串」都不是。 – Cairnarvon 2013-05-03 13:49:36

回答

3
>>> import re 
>>> text = '[SOME-WORD "Quoted string"]' 
>>> pat = r'\[(?P<capitalitem>SOME-WORD)(\ ?)\"(?P<quotedstring>[\w\s]+)\"(\ ?)\]' 
>>> re.search(pat, text).groupdict() 
{'capitalitem': 'SOME-WORD', 'quotedstring': 'Quoted string'}