0
我試圖讓我的頭繞過一些正則表達式,以便稍後編程一個編譯器。正則表達式格式混淆
,如果我有表達:
(A或B)*
這是同爲*或b *?或者是否意味着您可以選擇a或b零次或多次。
例如,使用此正則表達式,可以生成{ababababa}還是隻生成{aaaaaaa}或{bbbbbbb}的字符串?如果輸入符號是b,那麼這是否意味着只有b可以出現零次或多次,或者第二次出現?
非常感謝
我試圖讓我的頭繞過一些正則表達式,以便稍後編程一個編譯器。正則表達式格式混淆
,如果我有表達:
(A或B)*
這是同爲*或b *?或者是否意味着您可以選擇a或b零次或多次。
例如,使用此正則表達式,可以生成{ababababa}還是隻生成{aaaaaaa}或{bbbbbbb}的字符串?如果輸入符號是b,那麼這是否意味着只有b可以出現零次或多次,或者第二次出現?
非常感謝
在大多數的正則表達式庫中,or
操作拼寫|,所以你的正則表達式會是(a|b)*
。
那的確意味着「任何長度(包括0)的任意字符串僅由的一個 S和b的」。換句話說,圓括號與任何代數表達式一樣工作,以定義一個子表達式:將*(後綴)運算符應用於子表達a|b
。
有趣的事實:(a*b*)*
是與(a|b)*
完全相同的一組字符串。