0
A
回答
1
這只是一個角色類。 NFA的轉換標記有單個字符或lambda(空字符串)。要實現一個字符類,只需要爲該類中的每個字符進行轉換。否定班級只是在班級中爲每個字符而不是實施一次過渡。由於NFA需要使用有限的字母表,因此這完全沒有問題。如果A是字母表並且您想要[^ ab],那麼您需要對集合A - {a,b}中的每個字符進行一次轉換。
相關問題
- 1. 如何判斷正則表達式實現是否使用DFA或NFA?
- 2. .NET是否真正將NFA用於正則表達式引擎?
- 3. 正則表達式實現
- 4. 如何否定的正則表達式
- 5. 如何否定正則表達式?
- 6. 如何否定反正則表達式
- 7. 否定正則表達式
- 8. 否定正則表達式
- 9. 正則表達式否定
- 10. 如何將NFA轉換爲正則表達式?
- 11. 如何將NFA轉換爲正則表達式
- 12. 如何將正則表達式轉換爲NFA?
- 13. DFA和NFA如何與正則表達式相關聯?
- 14. 正則表達式正確實現
- 15. 正則表達式NFA用於未定義令牌的訂單
- 16. 否定詞組? - 正則表達式(正則表達式)
- 17. 如何在JavaScript中實現特定的正則表達式
- 18. r *表達式NFA
- 19. 實現正則表達式到JFormattedTextField
- 20. 正則表達式查詢實現
- 21. C++實現正則表達式地圖
- 22. NFA DFA和正則表達式轉換表
- 23. 將正則表達式轉換爲NFA轉換表
- 24. 在Java否定嵌套類如何正則表達式否定
- 25. 現正則表達式
- 26. 正則表達式 - 添加到現有的正則表達式
- 27. Java正則表達式來發現正則表達式
- 28. 接受正則表達式並生成NFA(Java)
- 29. 將點星正則表達式轉換爲NFA
- 30. 無法構建4狀態NFA對某些正則表達式
這是一個好主意,但這意味着當NFA收到一個字符時,它會對每個狀態的轉移進行foreach。實際上,我使用像multiMap這樣的數據結構來實現一個傳輸,它將通過字符散列來查找下一個狀態,並且在大多數情況下,它比狀態中的foreach傳輸更快。 – Zava
謝謝,我用混合風格實現了它。 – Zava
生產掃描儀通常將字符類編碼爲狀態編號數組,每個字符一個元素,或者如果類簡單,則將編碼的間隔列表排序。但是生產掃描儀不使用NFA,因爲它們比DFA慢得多。 – Gene