如果没有反斜杠,请用段落替换所有&符号

时间:2017-11-30 15:27:49

标签: regex

是否可以更精确地指定我想要替换的内容? 我正在努力取代所有'&'使用'§',除非'&'前面有'\'。怎么办?解释函数的确切运作方式也是如此。我尝试使用一个简单的while循环,遍历所有角色,但这似乎有点太耗时。

例如:& eMe \& & bYou - > §eMe& §bYou

因此,如果有人能够解释,我们将如何做到这一点,我将非常感激。

1 个答案:

答案 0 :(得分:4)

代码

See regex in use here

(?<!\\)&

替换:§

用法

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);
    }
}

说明

  • (?<!\\)负面的背后隐藏确保前面的内容不匹配
  • &按字面意思匹配