0
A
回答
2
這很容易dcg表示法。
以下假設你有設置:
在初始化文件
:- set_prolog_flag(double_quotes, chars).
,與字符更方便地工作。
例如:
no_braces([]) --> []. no_braces([C|Cs]) --> [C], { dif(C, '{') }, no_braces(Cs). no_braces(Cs) --> ['{'], no_braces(_), ['}'], no_braces(Cs).
樣品答問:
?- phrase(no_braces(Ls), "abc"). Ls = [a, b, c] ; false. ?- phrase(no_braces(Ls), "a{b}c"). Ls = [a, c] ; false.
我們也可以發佈非常普遍的查詢和仍然獲得答案:
?- length(Ls0, _), phrase(no_braces(Ls), Ls0). Ls0 = Ls, Ls = [] ; Ls0 = Ls, Ls = [_2308], dif(_2308, '{') ; Ls0 = Ls, Ls = [_2474, _2480], dif(_2474, '{'), dif(_2480, '{') ; Ls0 = ['{', '}'], Ls = [] ; Ls0 = Ls, Ls = [_2640, _2646, _2652], dif(_2640, '{'), dif(_2646, '{'), dif(_2652, '{') .
最後,你的例子:
?- phrase(no_braces(Ls), "a{1+{2}+3}b{4}c"). Ls = [a, b, c] ; false.
相關問題
- 1. 從字符串中刪除括號
- 2. 從字符串刪除花括號
- 3. 刪除字符串中的括號
- 4. Python從數組中刪除括號和字符串引號
- 5. 刪除括號內的字符串[iOS]
- 6. C#刪除字符串的括號
- 7. 的Ruby/Rails - 從字符串中刪除括號內的文字
- 8. 如何從iOS中的xml字符串中刪除括號?
- 9. 從Java中的字符串中刪除方括號
- 10. 從str.replace中的字符串中刪除括號使用str.replace
- 11. 如何從scala中的字符串中刪除括號?
- 12. 如何從PHP中的字符串中刪除括號?
- 13. 如何從JAVASCRIPT中的字符串中刪除括號?
- 14. 從Prolog的字符串中刪除字符
- 15. 如何從Python字符串中刪除括號內的文本?
- 16. 從帶有括號的字符串中刪除url/domain
- 17. 使用tcl從字符串中刪除方括號
- 18. 如何從結果字符串中刪除括號?
- 19. php:從字符串中刪除括號/內容?
- 20. 使用括號中的字符串刪除括號中的所有數字
- 21. 從子字符串中刪除逗號
- 22. 從字符串中刪除破折號?
- 23. 從字符串中刪除撇號
- 24. 從字符串中刪除加號(+)
- 25. 從字符串中刪除撇號python
- 26. 如何使用Ruby從字符串中刪除括號內的所有符號?
- 27. 從字符串末尾刪除^符號
- 28. 從字符串中刪除字符串模式和符號
- 29. 從括號,括號和連字符的字符串中獲取子字符串
- 30. 替換/刪除Bash字符串中的文字方括號