我一直在使用 ICSharp TextEditor 控件,它使用 XML 文件通过 C# regex 引擎计算出不同的语法高亮部分(字符串、注释等)。
所以我一直在使用这个正则表达式来匹配和弦符号(来自这个问题):
\b[A-G](?:add|maj|j|m|\+|b|\#|sus|\d|°)*(?:\b|(?<=\#))
问题是,< 符号是 XML 语法的一部分,所以我将其替换为 <,使其成为:
\b[A-G](?:add|maj|j|m|\+|b|\#|sus|\d|°)*(?:\b|(?<=\#))
问题是,在这样做之后,程序由于无效的正则表达式而崩溃。我已经缩小了范围,这肯定是导致问题的 < 。
那么有没有其他方法可以转义 < 尖括号,同时仍然允许正则表达式引擎使用它。