Java 在特定字符之前插入字符
我一直在研究正则表达式,以及如何在Java中使用它来解决我必须解决的问题。我必须在每个前插入\。这就是我所拥有的:Java 在特定字符之前插入字符,java,regex,string,Java,Regex,String,我一直在研究正则表达式,以及如何在Java中使用它来解决我必须解决的问题。我必须在每个前插入\。这就是我所拥有的: public class TestExpressions { public static void main (String args[]) { String test = "$('a:contains(\"CRUCERO\")')"; test = test.replaceAll("(\")","$1%"); System
public class TestExpressions {
public static void main (String args[]) {
String test = "$('a:contains(\"CRUCERO\")')";
test = test.replaceAll("(\")","$1%");
System.out.println(test);
}
}
输出为:
$('a:contains("%CRUCERO"%)')
我想要的是:
$('a:contains(\"CRUCERO\")')
我已更改\\的%s,但出现错误StringIndexOutofBounds不知道原因。如果有人能帮助我,我将不胜感激,提前谢谢。如果您想在报价前插入退格,请使用:
test = test.replaceAll("(\")","\\\\$1"); // $('a:contains(\"CRUCERO\")')
或者,如果要避免已转义的引号,请使用负查找:
String test = "$('a:contains(\\\"CRUCERO\")')";
test = test.replaceAll("((?<!\\\\)\")","\\\\$1"); // $('a:contains(\"CRUCERO\")')
如果要在报价前插入退格,请使用:
test = test.replaceAll("(\")","\\\\$1"); // $('a:contains(\"CRUCERO\")')
或者,如果要避免已转义的引号,请使用负查找:
String test = "$('a:contains(\\\"CRUCERO\")')";
test = test.replaceAll("((?<!\\\\)\")","\\\\$1"); // $('a:contains(\"CRUCERO\")')
说明:
说明:
我必须在每个
您可以尝试使用replace,它自动转义所有regex元字符,并且在替换部分中不使用任何特殊字符,所以您可以简单地使用要放入匹配部分的字符串文本
因此,让我们用\literal替换。你可以这样写
test = test.replace("\"", "\\\"");
我必须在每个
您可以尝试使用replace,它自动转义所有regex元字符,并且在替换部分中不使用任何特殊字符,所以您可以简单地使用要放入匹配部分的字符串文本
因此,让我们用\literal替换。你可以这样写
test = test.replace("\"", "\\\"");
如果您的目标是java字符串的转义文本,那么代替正则表达式,请考虑使用
String escaped = org.apache.commons.lang.StringEscapeUtils.
escapeJava("$('a:contains(\"CRUCERO\")')");
System.out.println(escaped);
输出:
$('a:contains(\"CRUCERO\")')
javadoc:
如果你的目标是java字符串的转义文本,那么代替正则表达式,考虑使用String escaped = org.apache.commons.lang.StringEscapeUtils.
escapeJava("$('a:contains(\"CRUCERO\")')");
System.out.println(escaped);
输出:
$('a:contains(\"CRUCERO\")')
JavaDoc: