我想编写一个可以匹配以下字符串文字规范的正则表达式。在过去的 10 个小时里,我疯狂地编写了各种似乎都不起作用的正则表达式。最后我归结为这个:
([^"]|(\\[.\n]))*\"
基本上,要求如下:
- 必须匹配字符串文字,所以我匹配所有内容直到最后一个“,中间可能有一个 \”,它不应该结束字符串。
- 我们还可以转义任何内容,包括带有 '\' 的 \n
- 只有未转义的 '"' 字符可以结束匹配,没有别的。
我需要正确匹配的一些示例字符串如下:
- \a\b\"\n" => 我应该匹配后面的字符 '\', 'a', '\', 'b', '\','"','\', 'n', '" '
- \"this is still inside the string" => 应该匹配整个文本,包括最后一个 '"'
- 'm about to escape to a newline \'\n'" => 这个字符串中有一个 \n 字符,但字符串仍然应该匹配从开始 'm' 到结束 '"' 的所有内容。
请有人帮我制定这样的正则表达式。在我看来,我提供的正则表达式应该可以完成这项工作,但它无缘无故地失败了。