繁体   English   中英

替换某些字符组合

[英]Replacing certain combination of characters

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

A.单位运输长度
C.整体高度
整体重量
X.最大切割高度

我尝试过类似的方法,但是不起作用:

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

结果应如下所示:

单位运输长度
整体高度
整体重量
最大切割高度

这应该工作:

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

例子

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

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

但是,这将替换与模式匹配的每个字符序列。 为了在开始时匹配一个序列,您应该使用

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

尝试这个 :

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

如果不看代码,很难分辨出问题所在。 但是从我的经验来看,这是我们在刚开始的时候通常会遇到的常见问题:

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

字符串是Java中不变的类。 创建对象后意味着什么不能更改。 所以在这里,当我们在现有String中执行replaceAll时,它只是创建一个新的String对象。 您需要将其分配给新变量或覆盖现有值,如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM