Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中只删除给定字符串中的字符?_Java_Regex - Fatal编程技术网

如何在java中只删除给定字符串中的字符?

如何在java中只删除给定字符串中的字符?,java,regex,Java,Regex,我只想删除[A-z | A-z]如下: String input ="A021001208A 711100609C 01111"; String clean = input.replaceAll("\\D+^\\s+",""); System.out.println(clean.toString()); 但是上面的代码也删除了空格;我不想删除空间 预期产出为: 021001208 711100609 01111 请帮助我格式化reg ex以仅删除字符。只需替换[a-zA-Z],然后: St

我只想删除
[A-z | A-z]
如下:

String input ="A021001208A 711100609C 01111";
String clean = input.replaceAll("\\D+^\\s+",""); 
System.out.println(clean.toString());
但是上面的代码也删除了空格;我不想删除空间

预期产出为:

021001208 711100609 01111

请帮助我格式化reg ex以仅删除字符。

只需替换
[a-zA-Z]
,然后:

String clean = input.replaceAll("(?i)[A-Z]+",""); 

(?i)
是忽略大小写嵌入的标志表达式。

尝试此操作,它将替换给定字符串中出现的所有字母

String clean = input.replaceAll("[^a-zA-Z]", "");

您必须使用
[a-zA-Z]
正则表达式。因此,您的
.replaceAll()
方法如下所示:

 String clean = input.replaceAll("[a-zA-Z]",""); 

不要使用正字符类,而要使用反字符类。您需要的正则表达式是:

[^\d\s]
这表示“除数字或空白以外的任何字符”。
当编码为java时,它看起来像:

String clean = input.replaceAll("[^\\d\\s]",""); 

它删除了字符串之间的空格,我想保留sapce,它应该只删除A-Z或A-zI。我不相信它删除了空格。您确定测试正确吗?input.replaceAll(“[a-zA-Z]”,“”);可以删除这些字符。。相同的任何reg ex模式。@jcrshankar上面的也是regex。似乎你在寻找一些复杂的答案……是的??它删除了字符串之间的空格,我想保留空格,它应该只删除A-Z或A-z@jcrshankar最好向我们展示你在问题中得到的实际代码、实际文本和输出,因为这和我的答案中的正则表达式都不会删除空格。@RohitJain它们可能是制表符而不是空格,在这种情况下,
\s
相反-请参阅编辑的答案(如果字符是空格,它仍然有效)这将给出我的输出,任何相同的正则表达式模式。
[a-zA-Z]
仅是正则表达式模式。仅供参考,如果它起作用,那么
[a-zA-Z]+
也会起作用。