这是我的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
有什么建议吗?
答案 0 :(得分:3)
此处有两个问题:^
匹配字符串位置的开头,$
匹配字符串位置的结尾,[a-z|A-Z]
匹配任何ASCII字母或|
(因为字符类中的管道与文字|
字符匹配。
使用
String pattern = "co[a-zA-Z]e";
[a-zA-Z]
字符类匹配任何ASCII字母。
请参阅regex demo。