使用正则表达式的replaceAll()不起作用

时间:2018-01-22 20:48:54

标签: java regex

这是我的Java代码:

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine();

String pattern = "^co[a-z|A-Z]e$";

String b = a.replaceAll(pattern,"1");
System.out.print(b);

我只需要替换“#34; code"或者" co' [a-z | A-Z]' e"使用' 1',但它似乎仅在输入字符串为" code"没有别的

示例输入codexxccope

预期输出1xxc1

我的输出codexxccope

示例输入2 code

我的输出1

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

此处有两个问题:^匹配字符串位置的开头,$匹配字符串位置的结尾,[a-z|A-Z]匹配任何ASCII字母或|(因为字符类中的管道与文字|字符匹配。

使用

String pattern = "co[a-zA-Z]e";

[a-zA-Z]字符类匹配任何ASCII字母。

请参阅regex demo