是否可以更精确地指定我想要替换的内容? 我正在努力取代所有'&'使用'§',除非'&'前面有'\'。怎么办?解释函数的确切运作方式也是如此。我尝试使用一个简单的while循环,遍历所有角色,但这似乎有点太耗时。
例如:& eMe \& & bYou - > §eMe& §bYou
因此,如果有人能够解释,我们将如何做到这一点,我将非常感激。
答案 0 :(得分:4)
(?<!\\)&
替换:§
See code in use here:代码的一部分autogenerated by regex101
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
final String regex = "(?<!\\\\)&";
final String string = "&&&&&\\&\\&\\&&&&";
final String subst = "§";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
(?<!\\)
负面的背后隐藏确保前面的内容不匹配&
按字面意思匹配