首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Regex将字符串和字符与“”匹配

Java Regex将字符串和字符与“”匹配
EN

Stack Overflow用户
提问于 2015-07-10 04:18:52
回答 2查看 788关注 0票数 2

我正在创建一个简单的IDE,根据源代码对我的JTextPane进行着色。目前,我能够匹配:

  • 评论(// & /* */)
  • 字符串(“")
  • 数字(整数和小数)
  • 关键词(例如公共/保护.)

Q1:我想将char的着色方式与字符串的方式相同。例如: char = 'a';

我是否应该改变我的字符串正则表达式以满足字符检测的需要?

经过多次测试后,我发现了一个会使我的字符串检测着色变得混乱的场景:当用户输入char c=‘“时;检测到的第二个字符串将作为第一个字符串的一部分来检测它(示例如下.所示)。

我的字符串着色扰乱了我整个IDE的着色:

这就是我如何检测字符串模式并为其设置颜色:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

发布于 2015-07-10 06:26:59

这应该是可行的:

代码语言:javascript
复制
Pattern stringPattern = Pattern.compile("((?<!\\\\)\\\"(.*?)\\\"(?<!\\\\\\\"))");

请参阅:https://regex101.com/r/kT4oZ1/1

票数 1
EN

Stack Overflow用户

发布于 2015-07-10 09:48:04

为什么不使用一个现成的库,如下所示:

https://github.com/bobbylight/RSyntaxTextArea

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31332381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档