正则匹配字符串

bxh566 2009-03-01 08:18:26
匹配java文件中的整个字符串,字符串中可能还有\"。
这个正则该怎么写
...全文
35 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
非常复杂!

得过滤掉多行注释和单行注释中含有的字符串。

下面这个是原来做的一个处理 Java HTML 高亮显示中的截出来的一段代码,有兴趣的话可以看看。

public class JavaString {

/**
* 多行注释
*/
private final static String MULTI_COMMENT = "/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/";

/**
* 单行注释
*/
private final static String SINGLE_COMMENT = "//[^\\r\\n]*+";

/**
* 字符串
*/
private final static String QUOTE_STRING = "\"[^\\\\\"]*(?:\\\\.[^\\\\\"]*)*\"";

/**
* 匹配字符串的正则表达式
*/
private final static Pattern REGEX_QUOTE_STRING = Pattern.compile(
"(" + SINGLE_COMMENT + "|" + MULTI_COMMENT + ")|" +
"(" + QUOTE_STRING + ")"
);
}


最后一个就是用于匹配 Java 字符串的正则表达式(可以忽略掉注释中的,并且能识别带有转义符的字符串),
字符串在这个表达式的第二组中。

这个表达式非常复杂,由其是 MULTI_COMMENT 和 QUOTE_STRING 这两个!这两个可能会很难理解,有兴趣的话可以看看这个帖子:

http://topic.csdn.net/u/20081214/20/884897d7-ed16-4b05-8b24-2aa98f627e35.html

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧