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()。