1. {a, b, c}上的串S中,任何兩個(gè)b都不相連,用正則表達(dá)式表示為
(a|c|ba|bc)*(b|空)
2. Pascal注釋的表示
{(~})*}
{ } 中間為任意非}的符號(hào),注意表達(dá)的嚴(yán)謹(jǐn)
3. C注釋的表示就困難很多
例如要表示ba ...(沒(méi)有ab)... ab這樣的字符串,不能簡(jiǎn)單的寫(xiě)成
ba(~(ab))*ab
因?yàn)閪非運(yùn)算符通常只適用于單字符,否則容易產(chǎn)生混淆。
b*(a*~(a|b)b*)*a*
像這樣的定義很難讀,而且難以證明其正確性,因此在真正的掃描程序中通常用特殊方法解決。