Java - 在字符串模式后将String插入另一个String?

时间:2017-03-21 03:58:20

标签: java regex string

我试图找出如何在原始字符串中的某个字符串模式之后将特定字符串插入另一个字符串(或创建一个新字符串)。

例如,给定此字符串,

kill -9 $(ps -aux | grep "[g]runt" | awk '{print $2}')

我如何插入"& l"毕竟"& x"字符串,它返回,

[]

我尝试使用正面的后置Regex进行以下操作,但它返回了一个空字符串,我不知道为什么。 "消息"变量被传递给方法。

"&2This is the &6String&f."

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用:

message.replaceAll("(&.)", "$1&l")
  • (&.)找到&符号(&)后跟任何内容的模式。 (正如你所写的&x)。
  • $1&l由捕获的组本身替换捕获的组,然后是&l

<强>码

String message = "&2This is the &6String&f.";
String newMessage = message.replaceAll("(&.)", "$1&l"); 
System.out.println(newMessage);

<强>结果

&2&lThis is the &6&lString&f&l.

答案 1 :(得分:0)

我的答案与上面的答案类似。只是这种方式在许多情况下都是可重用和可定制的。

public class libZ
{
    public static void main(String[] args)
    {
        String a = "&2This is the &6String&f.";
        String b = patternAdd(a, "(&.)", "&l");
        System.out.println(b);
    }

    public static String patternAdd(String input, String pattern, String addafter)
    {
        String output = input.replaceAll(pattern, "$1".concat(addafter));
        return output;
    }
}