Java 用危险符号转换字符串
我有以下资料:Java 用危险符号转换字符串,java,regex,Java,Regex,我有以下资料: String l = "1. [](a+b)\n2. (-(q)*<>(r))\n3. 00(d)\n4. (a+-b)"; String s = "1. [](a+b)\n2. 00(d)" String l=“1[(a+b)\n2.(-(q)*(r))\n3.00(d)\n4.(a+-b)”; 字符串s=“1[(a+b)\n2.00(d)” 第一个字符串是一个表达式列表。第二个字符串是第一个字符串的一个子集,但它们的编号ID不相等 然后,我想这样做: Stri
String l = "1. [](a+b)\n2. (-(q)*<>(r))\n3. 00(d)\n4. (a+-b)";
String s = "1. [](a+b)\n2. 00(d)"
String l=“1[(a+b)\n2.(-(q)*(r))\n3.00(d)\n4.(a+-b)”;
字符串s=“1[(a+b)\n2.00(d)”
第一个字符串是一个表达式列表。第二个字符串是第一个字符串的一个子集,但它们的编号ID不相等
然后,我想这样做:
String l2 = "1. <b>[](a+b)</b>\n2. (-(q)*<>(r))\n3. <b>00(d)</b>\n4. (a+-b)";
String l2=“1[(a+b)\n2.(-(q)*(r))\n3.00(d)\n4.(a+-b)”;
l2
是l
的转换,但带有标记的表达式。此标记的表达式包含在s
中。请注意,原始字符串的符号有(
、[
)等
有什么更好的方法吗?如果我理解正确,你的问题就在于此
String.replaceAll(String, String)
这里不起作用,因为字符(
,[
,\
)在正则表达式中有特殊含义
也许你可以用
String.replace(CharSequence target, CharSequence replacement)
那么您根本不需要处理正则表达式。String l=“1[(a+b)\n2.(-(q)*(r))\n3.00(d)\n4.(a+-b)”;
String l = "1. [](a+b)\n2. (-(q)*<>(r))\n3. 00(d)\n4. (a+-b)";
String s = "1. [](a+b)\n2. 00(d)";
String[] a=l.split("\\n");
for(int i=0;i<a.length;i++)
a[i]=a[i].split("\\d. ")[1];
String[] b=s.split("\\n");
for(int i=0;i<b.length;i++)
b[i]=b[i].split("\\d. ")[1];
for(int i=0;i<b.length;i++)
l=l.replace(b[i], "<b>"+b[i]+"</b>");
字符串s=“1[(a+b)\n2.00(d)”;
字符串[]a=l.split(\\n“);
对于(int i=0;我只是想知道我在看什么,什么是危险符号?元字符(
,[
,等等)我不知道。正则表达式就是问题所在。@isola009:只想确认使用替换()
应该可以正常工作。@isola009:您不需要任何正则表达式来实现它。只需使用replace()。