Verilog 在LEX中,如何解析一些代码直到出现一个特殊的符号?

Verilog 在LEX中,如何解析一些代码直到出现一个特殊的符号?,verilog,lex,Verilog,Lex,我想知道在LEX中,如果我想解析一些代码直到一个特殊的符号 例如:$display(“helloworld”) 在这里,我想得到$display(“helloworld”)但除了 我已经试过了:\$“display”。*[^;],它似乎不起作用 任何帮助都将不胜感激。谢谢。匹配任何字符,Kleene星号*将匹配前面的许多字符。在本例中,您将匹配显示,后跟任何其他字符的列表。这正好包括您要捕获的位和分号 显而易见的修复方法是删除表达式的该部分,并将Kleene星号移动到[^;]表达式之后。将显示“

我想知道在LEX中,如果我想解析一些代码直到一个特殊的符号

例如:
$display(“helloworld”)

在这里,我想得到
$display(“helloworld”)
但除了

我已经试过了:
\$“display”。*[^;]
,它似乎不起作用


任何帮助都将不胜感激。谢谢。

匹配任何字符,Kleene星号
*
将匹配前面的许多字符。在本例中,您将匹配
显示
,后跟任何其他字符的列表。这正好包括您要捕获的位和分号

显而易见的修复方法是删除表达式的该部分,并将Kleene星号移动到
[^;]
表达式之后。将显示“匹配任何字符的多个实例,而该字符不是
”。这可能需要在子表达式周围使用paren(我不记得pricese语法,因为它在不同的lexer中有所不同)


\$“display”([^;])*
\$“display”[^;]*
匹配任何字符,Kleene星号将匹配其前面的许多字符。在本例中,您将匹配
显示
,后跟任何其他字符的列表。这正好包括您要捕获的位和分号

显而易见的修复方法是删除表达式的该部分,并将Kleene星号移动到
[^;]
表达式之后。将显示“匹配任何字符的多个实例,而该字符不是
”。这可能需要在子表达式周围使用paren(我不记得pricese语法,因为它在不同的lexer中有所不同)


\$“display”([^;])*
\$“display”[^;]*

字符类表达式周围不需要参数。另外,应该删除“display”周围的双引号。非常感谢。这确实帮了我的忙。:)但是仍然有另一个问题,所以我只是创建了。角色类表达式周围不需要paren。另外,应该删除“display”周围的双引号。非常感谢。这确实帮了我的忙。:)但仍然有另一个问题,所以我只是创造了。