什么是简洁的正则正则表达式,用于从不是字母表的字符串中删除所有内容
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int T=0;
try{
T= Integer.parseInt(br.readLine());
while(T>0)
String input=br.readLine();
**String res= input.replaceAll("^[a-zA-Z]"," " );**
System.out.println(res);
也试过
input.replaceAll("[^a-zA-Z]]"," " )
它们都没有替换输入字符串中的任何内容。输入字符串保持原样
编辑:
input.replaceAll("[^a-zA-Z]"," " ) //works well
input.replaceAll("^[a-zA-Z]"," " ) //replaces first char of string
最佳答案
你需要:
input = input.replaceAll("[^a-zA-Z]"," " );
^^^^^^^ ^ ^
您需要使 input
引用指向 replaceAll
方法返回的 String 对象,以获取更改后的字符串,因为字符串是不可变的。
A-z
范围不是您想要的。您需要 A-Z
。
此外,您的模式中还有一个额外的 ]
。
关于java - 正则表达式替换除字母以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13329449/