我正在创建一个简单的IDE,根据源代码对我的JTextPane进行着色。目前,我能够匹配:
Q1:我想将char的着色方式与字符串的方式相同。例如: char = 'a';
我是否应该改变我的字符串正则表达式以满足字符检测的需要?
经过多次测试后,我发现了一个会使我的字符串检测着色变得混乱的场景:当用户输入char c=‘“时;检测到的第二个字符串将作为第一个字符串的一部分来检测它(示例如下.所示)。
我的字符串着色扰乱了我整个IDE的着色:
这就是我如何检测字符串模式并为其设置颜色:
Pattern strings = Pattern.compile("\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"");
Matcher matcherS = strings.matcher(text);
while (matcherS.find())
setCharacterAttributes(matcherS.start(), matcherS.end() - matcherS.start(), red, false);下面是我的IDE的示例输出:

Q2:我应该编辑字符串检测正则表达式来解决这个错误吗?
提前谢谢。
如果有人发现有帮助,我从以下位置获得了字符串IDE检测正则表达式:
Which is the right regular expression to use for Numbers and Strings?
发布于 2015-07-10 06:26:59
这应该是可行的:
Pattern stringPattern = Pattern.compile("((?<!\\\\)\\\"(.*?)\\\"(?<!\\\\\\\"))");发布于 2015-07-10 09:48:04
为什么不使用一个现成的库,如下所示:
https://stackoverflow.com/questions/31332381
复制相似问题