在Java中使用Regex时,我有一个关于转义" 字符的问题。我正在对HTML转换器进行降价,我想通过带有图像标签的字符串进行解析。我正在使用正则表达式来查找引号符号("")。因此,例如,在解析时:
![circles and squares](images/mysketch.jpg "My first sketch")
我想检测" " (引号)并将 我的第一个草图 部分字符串捕获到一个组中。
<img src="images/mysketch.jpg" alt="circles and squares" title="My
first sketch">
因此,基本上,这就是转换器要输出的内容。
以下是我用来执行此操作的代码:
public String parseString(String input){
Pattern image = Pattern.compile("(.*?)!\\[(.*?)\\]\\((.*?)\\)(.*)");
Matcher m = list.matcher(input);
//image detection
m = image.matcher(input);
if (m.matches()) {
String ret = "";
for (int i = 0; i < m.groupCount(); i++) {
ret += m.group(i+1);
}
return parseString(m.group(1)) + translateImage(m.group(2),
m.group(3), m.group(4)) + parseString(m.group(5));
}
但是当我尝试将符号添加到正则表达式时,它结束了我想要关闭表达式的行,如下所示。
Pattern image = Pattern.compile("(.*?)!\\[(.*?)\\]\\((.*?)"\\)(.*)");
tl; dr - 我想知道是否有任何办法逃避&#34;在Java中使用Regex时的char?任何帮助表示赞赏。
答案 0 :(得分:0)
你只需要一个Java字符串文字转义....
Pattern image = Pattern.compile("(.*?)!\\[(.*?)\\]\\((.*?)\"\\)(.*)");