1

我想1\n2用例如“”替换文本“”(“1”新行和“2”)abcd。我一直在寻找解决方案,但我找不到。

下面是我的代码

String REGEX = "1\n2";
Pattern p = Pattern.compile(REGEX, Pattern.DOTALL);
Matcher m = p.matcher(text);
String newText = m.replaceAll("abcd");

[编辑] 我想添加从文件中读取的文本变量:

String text = new Scanner(new File("...")).useDelimiter("\\A").next();
4

3 回答 3

4

尝试将您的正则表达式更改为

String REGEX = "1\\n2";

所以它逃脱了\n

例子:

public static void main(String[] args) {
    String REGEX = "1\n2";
    Pattern p = Pattern.compile(REGEX, Pattern.DOTALL);
    Matcher m = p.matcher("test1\n2test");
    String newText = m.replaceAll("abcd");
    System.out.println(newText);
}

输出/输出:

testabcdtest

甚至简单地

String newText = "test1\n2test".replaceAll("1\n2", "abcd");

输出/输出

testabcdtest
于 2013-09-30T12:39:14.833 回答
1

Why use a regex for this? Just use

String newText = text.replace("1\n2", "abcd");
于 2013-09-30T12:40:49.933 回答
0

尝试这个

String str="Your String"
str=str.replace("1\n2","abc");
于 2013-09-30T12:44:45.160 回答