我目前正在研究一個簡化創建正則表達式模式的庫。簡化正則表達式量化器
要生成最清晰的模式,我想盡量簡化量詞。假設以下子模式已經發射:
(?:\d+)?
上面可以簡化爲\d*
,但是它也正確地假設(?:ℝ+)?
總是可以被簡化爲ℝ*
,其中ℝ
是任意(括號,如果必要的話)正則表達式?
如果是的話,下列情況也應該如此,對嗎?
(?:ℝ+)?
=>ℝ*
(?:ℝ+)*
=>ℝ*
(?:ℝ+)+
=>ℝ+
(?:ℝ*)?
=>ℝ*
(?:ℝ*)*
=>ℝ*
(?:ℝ*)+
=>ℝ*
(?:ℝ?)?
=>ℝ?
(?:ℝ?)+
=>ℝ*
(?:ℝ?)*
=>ℝ*
更大的應該爲所有這些是真實的,假設沒有任何反應會使他們不貪心(我不認爲會這樣)。 – callumacrae
除了所有偉大的建議,你也可以作弊和偷看正則表達式(C++),正則表達式:彙編和正則表達式:彙編::壓縮(perl) – zx81