我想寫一個正則表達式規則分隔(法,但一般的正則表達式應該沒問題),像下面這樣:正則表達式(LEX柔性):字符串由雙條
字符串可以包含所有字符,但「||」符號。它可能包含'|'。
所以,基本上需要一個正則表達式來捕獲所有字符串,但「||」。但是,堅持這一步。
有人可以給我一個提示如何寫這樣的字符串的正則表達式嗎?
我想寫一個正則表達式規則分隔(法,但一般的正則表達式應該沒問題),像下面這樣:正則表達式(LEX柔性):字符串由雙條
字符串可以包含所有字符,但「||」符號。它可能包含'|'。
所以,基本上需要一個正則表達式來捕獲所有字符串,但「||」。但是,堅持這一步。
有人可以給我一個提示如何寫這樣的字符串的正則表達式嗎?
一個不包含||的字符串。可以被認爲是由單個字符組成的字符串集合,然後由豎線分隔。例如,像
ab|cd|ef|gh
|ab|cd|ef
等遵循此模式。這些字符串
假設所允許的唯一的字符 「a」 和 「|」?,一個正則表達式,這是
(A +)(\ | A +)* \ |?
(我使用\ |代表|字符,因爲它需要被轉義)。我認爲你可以通過將這個正則表達式的兩個副本與「||」相連來爲你的整體需求編寫一個正則表達式,在中間。
希望這會有所幫助!
這是非常有用的評論。我正在嘗試。 – Nullptr
你確定嗎?所以,如果你的輸入文件不包含'||',你需要一個字符串中的所有數據,但如果文件包含一個「||」,你需要第一個「||」之前的所有東西作爲字符串,和後面的所有東西,包括後面的'||',當然是第三個字符串(當然是用'||'作爲第二個字符串)?我認爲這不太可能,所以你應該更好地說明情況 - 可能。 –
如果沒有「||」,那麼yacc會拒絕輸入。如果有兩個「||」,這也是一個錯誤。 – Nullptr
你說得對。基本上我想要除了「||」之外的所有東西。在一般的字符串函數(C++或python)中,這將更容易。只需找到「||」。而已。但是,用RE做這件事有點棘手。 – Nullptr