替换某些字符组合

时间:2017-03-29 11:51:38

标签: java replaceall

我正在尝试删除第一个坏字符(CAP字母+点+空格)。

  

一个。装运长度
  C.整体高度
  总体重量
  X.最大切割高度

我尝试了类似的东西,但它不起作用:

string.replaceAll("[A-Z]+". ", "");

结果应如下所示:

  

装运长度
  整体高度
  总体重量
  最大切割高度

4 个答案:

答案 0 :(得分:1)

这应该有效:

string.replaceAll("^[A-Z]\\. ", "")

实施例

"A. Shipping Length of Unit".replaceAll("^[A-Z]\\. ", "")
// => "Shipping Length of Unit"
"Overall Weigth".replaceAll("^[A-Z]\\. ", "")
// => "Overall Weigth"

答案 1 :(得分:1)

input.replaceAll("[A-Z]\\.\\s", "");

[A-Z] 匹配从A到Z的大写字符
\。匹配点字符
\ s 匹配任何空格字符

但是,这将替换与模式匹配的每个字符序列。 要在开头匹配序列,您应该使用

input.replaceAll("^[A-Z]\\.\\s", "");

答案 2 :(得分:0)

试试这个:

myString.replaceAll("([A-Z]\\.\\s)","")
  • [A-Z]:匹配A和Z之间范围内的单个字符。
  • \。 :匹配点字符。
  • \ s:匹配空格字符。

答案 3 :(得分:0)

如果不查看代码,很难说出问题。但根据我的经验,这是我们在最初几天通常会遇到的常见问题:

String string = "A. Test String";
string.replaceAll("^[A-Z]\\. ", "");
System.out.println(string);

String是Java中的不可变类。这意味着一旦你创建了一个对象就无法改变它。所以当我们在现有String中替换所有时,它只是创建一个新的String对象。您需要分配给新变量或覆盖现有值,如下所示:

String string = "A. Test String";
string  = string.replaceAll("^[A-Z]\\. ", "");
System.out.println(string);