C# 正则表达式错误未终止 [] 集

本文关键字:终止 正则表达式 错误 | 更新日期: 2023-09-27 18:30:37

我收到此错误(我正在使用C#):

解析"(--[[.?]]])|(--[[.)'"- 未终止 [] 集。

尝试添加 Lua 的多注释代码时。这是它应该是:

--[[
  Hello
]]

但是,当我取出"]]"时在此正则表达式的末尾:

(--[[.*?]])|(--[[.*)

它会给我这个错误。但是,如果我在上面添加"]]",例如:

(--[[.*?]])|(--[[.*]])

它工作得很好。

以下是完整的代码:

Regex CustomCommentRegex1, CustomCommentRegex2, CustomCommentRegex3;
CustomCommentRegex1 = new Regex(@"--.*$", RegexOptions.Multiline | RegexCompiledOption);
CustomCommentRegex2 = new Regex(@"(--[[.*?]])|(--[[.*)", RegexOptions.Singleline | RegexCompiledOption);
CustomCommentRegex3 = new Regex(@"(--[[.*?]])|(.*]])", RegexOptions.Singleline | RegexOptions.RightToLeft | RegexCompiledOption);
"

自定义注释Regex2"是我收到此"未终止[]集"错误的地方。如果我在"自定义评论Regex2"的末尾添加"]]",我遇到了问题。它将突出显示"--[[ ]]"上方的文本,评论及其内部;无论如何,问题是这个"未终止[]集"错误。

C# 正则表达式错误未终止 [] 集

来自正则表达式网站

因为我们想做的不仅仅是搜索文字片段 文本,我们需要保留某些字符以供特殊使用。在 本教程中讨论的正则表达式风格,有 11 个字符 特殊含义:左方括号[、反斜杠''、 插入符号 ^、美元符号 $、句点或点 .、竖线或 管道符号 |、问号 ?、星号或星号 *、加号 符号 +,开始圆括号(和右圆括号)。 这些特殊字符通常称为"元字符"。

用 '' 转义括号

(--'['[.*?]])|(--'['[.*)