2011-07-13 294 views
2

我的輸入是一個正則表達式,例如:[0-]\sbla\scd\s\^a 我想獲取不可更改的字符串。這個例子的輸出是:正則表達式解析

bla 
cd 
^a 

有沒有人知道一個程序這樣做,源代碼會有幫助。 (它不是作業:)

+0

'a [b] c',應該返回'c'還是'abc'?那麼'ab {0} c'應該返回'c'還是'ac'? –

+0

@Sebastian或'abc'因爲這是一個不可更改的字符串。或者'(ab){3}'應該是什麼,ab'或'ababab'? – tobyodavies

+0

你也許可以根據具有特殊含義的字符對正則表達式進行拆分,然後將剩餘的令牌解析爲字符串。例如(而不是防彈)根據這個分割:'(?<!\\)(\ [。*?\] | \\ [abBdDefnrsStv] | \ x [\ dA-Fa-f] {2}^| \ $)' –

回答

1

你應該看看正則表達式解析器的代碼。它會在解析時得到「不可更改」的字符串。如果它暴露解析樹,你可以擁有你想要的。這將是比寫自己的解析器更好...

嘗試的類似libregex :)

我的兩分錢的來源。