我目前正在学习正则表达式,我正在试图弄清楚如何在C中捕获不允许换行的字符串。我已经四处寻找有关flex和lex的答案,但我正在努力学习它,因为我可以更好地理解它。
这是我发现的一个表达式,它似乎很常见(我发现了很多)。但我仍然没有找到明确的解释,说明它的含义以及如何使用它。
\"(\\.|[^"])*\"
答案 0 :(得分:3)
这个表达式的含义是在开头和结尾都必须有一个双引号\"
,并且下面会有一个零或更多的序列:
\\
后跟任何单个字符.
或[^"]
第一个条款是不言自明的。第二个子句用于将任何以反斜杠开头的单个字符视为转义序列。这可以确保表达式将捕获以下任何字符串:
"string \"one\" has embedded doublequotes"
"string two \
is split across \
multiple lines"
"string\tthree\nhas\tembedded\tescape\tcharacters"