我需要找到a,b和c的所有字符串 的語言的簡化正則表達式,其中a永遠不會緊跟在後面灣找到一個正則表達式,其中a永遠不會緊接着b(形式語言的理論)
我想什麼,伸出直到(A + C)* C(B + C)* +(B + C)*(A + C)*
這是罰款,如果是的話可以這樣簡單?
在此先感謝。
我需要找到a,b和c的所有字符串 的語言的簡化正則表達式,其中a永遠不會緊跟在後面灣找到一個正則表達式,其中a永遠不會緊接着b(形式語言的理論)
我想什麼,伸出直到(A + C)* C(B + C)* +(B + C)*(A + C)*
這是罰款,如果是的話可以這樣簡單?
在此先感謝。
你正在尋找一個負回顧後:
(?<!a)b
這會找到你所有的b
實例未緊跟a
或負前瞻:
a(?!b)
這會發現你所有的a
實例,其後不會立即跟着b
下面是回顧後一個regex101例如:
https://regex101.com/r/RsqXbW/1
這裏是先行一個regex101例如:
https://regex101.com/r/qiDIZU/1
您的解決方案包含所需的語言只有字符串。但是,它並不包含所有這些。例如acbac不包含在內。你的基本想法很好,但你需要能夠迭代可能的因素。在:
(b+c)*(a (a)*(c(b+c)*)*)*
第一部分生成沒有a的所有字符串。
第一個a之後,沒有任何東西,另一個a或c。另一個離開我們有三個選項。 c基本上再次開始遊戲。這是第一次正式化後的部分。許多*需要在所有不同的選項中生成空字符串。
您是否問過關於編程中使用的正則表達式或理論上的正則表達式?後者屬於math.stackexchange.com。 – Barmar
理論。好的謝謝。我已經將它發佈在math.stackexchange.com –
我投票結束這個問題作爲題外話題,因爲它是關於數學正則表達式的,並已在math.SE上轉貼。 – Barmar