[英]Permutations with Context Free Grammar
我當前正在編寫一種語法,該語法需要識別字符串abc,acb,bac,bca等。“ abc”的所有排列。
我只是想念一些東西,還是寫所有可能的組合,例如:S-> abc | acb | ...實現全面覆蓋。
基本上,您需要獨立識別每種可能的順序。 標准BNF表示法沒有捷徑。 使用正則表達式,您可以考慮減少正則表達式的長度,但這對您沒有太大幫助。 (例如,如果您想要a
, b
, c
和d
所有組合,則可以寫(ab|ba)(cd|dc)
代替稍長的abcd|abdc|bacd|badc
,但這無濟於事太多了。
對於三個或四個元素來說,還算不錯,但是並不能擴展。 通常的解決方案是允許元素的任何順序,並根據所使用的解析器生成器的功能在結束時或使用時檢查重復項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.