![](/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.