0
我試圖解析和驗證語言。我想標記輸入以檢查語法。 我的輸入字符串是:Python3 re.split()通過不是特殊子字符串的字符
something > 0 AND (something CONTAINS "substr" OR NOT something)
,如果我這樣做:
tokens = re.split(r"([\s()])", input)
我得到這個:
['something', ' ', '>', ' ', '0', ' ', 'AND', ' ', '', '(', 'something', ' ', 'CONTAINS',' ', '"substr"', ' ', 'OR', ' ', 'NOT', ' ', 'something', ')', '']
這是exacly我想要什麼。但是,總有一些「東西」。如果我更換「SUBSTR」與「SUBSTR與空白」,我得到這個數組,這是不完美的結果:
['"substr', ' ', 'with', ' ', 'whitespace"']
有什麼辦法如何分割到下面?
['"substr with whitespace"']
或者如何有效地修復這個「如此接近的分裂」? 或者也可以是不同的,我錯過了...