用于VHDL字符串文字的正则表达式

seb*_*ebs 1 regex vhdl

我正在尝试解析我的VHDL代码以进行一些额外的检查.

我正在寻找一个寻找字符串文字的正则表达式.字符串文字用双引号括起来,如下所示:

" {characters} "
Run Code Online (Sandbox Code Playgroud)

目前的问题是以下要求:

如果要在字符值序列中表示引号值,则必须在字符串文字内的相应位置写入一对相邻的引号.

这意味着以下是合法的字符串文字:

""""  
" random stuff "" random stuff "  
Run Code Online (Sandbox Code Playgroud)

我不确定是否:

("(("")*[^\n"]*)*")
Run Code Online (Sandbox Code Playgroud)

充分涵盖它

Phi*_*ppe 6

如果你想让它完全证明,你可能需要一个完整的词法分析器而不是正则表达式.我在这里读到的建议可能会导致误报,例如:

a <= '"'; -- assigns the character " to signal a.
Run Code Online (Sandbox Code Playgroud)

你的正则表达式会"'; -- assigns the character "在这里匹配.

然后,如果您的代码在注释或字符文字或字符串中不包含任何奇怪的双引号,则最简单的正则表达式将适用于您.