我有一個正則表達式模式,我使用了大量的文本(單個字符串)。原始文本的幾個不連續區域與正則表達式匹配。現在,我試圖構建一個狀態機,遍歷文本並根據某個位置上的char做不同的事情,以及這個位置是否在正則表達式匹配的範圍內。Python的正則表達式:如何檢查字符串中的字符是否在正則表達式匹配的子字符串的跨度內?
使用RE.finditer(文本),我可以找到所有子字符串,並提取它們的跨度,因此我有一個元組列表來處理例如
(1,5) (10,15) (20,55), 等
利用該信息,在給定的我的字符串的字符的索引,我可以寫一個算法來看如果該字符是正則表達式字符串的一部分。例如,給定字符6,我可以通過跨度列表並確定它不是匹配子字符串的一部分。
有沒有更好的方法來做到這一點?
由於提前,
JW
這聽起來像你想寫一個解析器FSM(其中包括其他東西)tokenizes com馬字符,只有當他們沒有逃脫。你真的想編寫自己的狀態機,而不僅僅是語法,並讓* antlr/lex *爲你創建FSM嗎? – smci
葉有點,我的lex/yacc有點模糊:)。 – wk1989
當你需要的是一個正則表達式,它匹配標識符內的轉義逗號時,無需編寫解析器FSM。那麼現在你想把所有*'bbbb /,ccccc' *作爲一個標記還是三個? – smci