![](/img/trans.png)
[英]Achieve the below syntax(for Factory design patters) in any compiled language? preferably Kotlin, C++
[英]Regex in c++ for maching some patters
我想要這個的正則表達式。
我想實現這個。 但是有點困惑,因為我是使用 Regex 的新手。 任何人都可以分享這些正則表達式嗎?
如果這是一個較長的項目並且以后會有更多的要求,那么采用不同的方法肯定會更好。
解決此類問題的標准方法是定義語法,然后創建詞法分析器和解析器。 lex/yacc 或 flex/bison 工具可以用於此。 或者,也可以手工制作一個簡單的移位/歸約解析器。
你用給定語法描繪的語言,可能確實用 Chomsky class 3 語法指定,因此可以用常規語法生成。 然后,用正則表達式進行解析。
關於寄存器是什么以及是否有更多關鍵字,規范有點不清楚。 尤其是ecall不清楚。
但是如何構建這樣的正則表達式呢?
您將定義小標記並將它們連接起來。 並且不同的路徑可以用 or 運算符|
來實現 .
讓我們舉個例子。
a\d+
匹配。 因此,“a”后跟一些數字。 如果它不僅是“a”,還有其他字母,你可以使用[az]\d+
|
列出。 . 就像在add|sub
\s+
或[ ]+
或您需要的任何空格。|
完整路徑因此,許多可能的解決方案之一可以是:
^[ ]*((add|sub)[ ]+(a\d+)[ ]*,[ ]*(a\d+)[ ]*,[ ]*(a\d+)|(ecall))[ ]*$
請參閱以下示例: regex101
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.