Regex 字符串匹配正则表达式

Regex 字符串匹配正则表达式,regex,Regex,我正在为一种简单的程序语言编写编译器。在此语言中,字符串变量可定义如下: String str = "hello"; 有效字符串的定义被简化,不允许使用转义字符(因此“\”hello\”不是有效字符串,因为它有太多的引号,“\n\n”作为4个字符的字符串是合法的,它不是两行新行)。我试图编写一个正则表达式来匹配字符串文字部分。最简单的方法是“*”。这很好,但有一个问题,它也匹配 "hello" safdfasasf" 这是非法字符串,因为字符串不能有内部引号。我尝试了几种不起作用的替代方法,

我正在为一种简单的程序语言编写编译器。在此语言中,字符串变量可定义如下:

String str = "hello";
有效字符串的定义被简化,不允许使用转义字符(因此
“\”hello\”
不是有效字符串,因为它有太多的引号,
“\n\n”
作为4个字符的字符串是合法的,它不是两行新行)。我试图编写一个正则表达式来匹配字符串文字部分。最简单的方法是
“*”
。这很好,但有一个问题,它也匹配

"hello" safdfasasf"

这是非法字符串,因为字符串不能有内部引号。我尝试了几种不起作用的替代方法,例如:
“(?!””
,它匹配任何不带引号的东西,然后需要一个引号,但也不起作用,因为它也不识别最后一个引号。这方面的正确正则表达式是什么?

您肯定在寻找类似的正则表达式

"[^"]*"

我正在为一种简单的程序语言编写一个编译器……什么是正确的正则表达式?
如果你为一种程序语言编写一个编译器,语法在哪里?用它来编写正则表达式。它的定义不是很好,这是一个由教授定义语言的家庭作业。我如何正式声明语法?看起来你走错了方向。通常正则表达式不是词法分析的最佳工具。此外,基于有限自动机编写自己的词法分析器可能会很棘手,如果这不是你作业的关键点,可能最好使用现有的(ANTLR、Flex等)。对于所有的投票人,你能评论一下你为什么要投反对票吗。这是我关于正则表达式的第一个问题,所以我想知道它有什么离题。它是否显示出足够的工作,或者它是否缺少MCVE?好的。当你说你尝试了几种替代方法时,我担心这太容易了!很高兴它成功了。顺便问一下,string litera可以吗ls在语言中包含换行符?不。它非常简单,所以对我们学生来说很容易。我想我不知道?!和^之间的区别。