0
我有一個正則表達式的另外一個問題,我要趕INFO1,INFO2和INFO3:蟒蛇正則表達式搜索
>>> a
'|123|blabla bloblo|90'
>>> b
'|123|blabla[[blibli|bloblo]]|90'
>>> re.search('\|(?P<info1>\d+)\|(?P<info2>[^\|]*)\|(?P<info3>\d+)',a).groupdict()
{'info1': '123', 'info3': '90', 'info2': 'blabla bloblo'}
>>> re.search('\|(?P<info1>\d+)\|(?P<info2>[^\|]*)\|(?P<info3>\d+)',b).groupdict()
AttributeError: 'NoneType' object has no attribute 'groupdict'
我想用|作爲分隔符,但如果它環繞在[[]]或{{}} 對於B我想:
{'info1': '123', 'info3': '90', 'info2': 'blabla[[blibli|bloblo]]'}
感謝,
請勿爲此使用單個正則表達式。即使可能,它也是難以辨認的。先使用正則表達式分割出包圍的部分。如果語法變得比這更復雜,你應該開始考慮一個詞法分析器。 – user37078
你有任何控制這種格式?因爲如果你可以用單個字符來引用例如而不是[[和]]使用'''或其他字符,您可以使用csv模塊輕鬆解析它 –