正则修剪
规范不清楚,但您可以使用正则表达式来实现这一点。
下面是一个例子:
// trim digits from end
System.out.println(
"123a456z789".replaceAll("\\d+\\Z", "")
);
// 123a456z
// trim digits from beginning
System.out.println(
"123a456z789".replaceAll("\\A\\d+", "")
);
// a456z789
// trim digits from beginning and end
System.out.println(
"123a456z789".replaceAll("\\A\\d+|\\d+\\Z", "")
);
// a456z
锚
\A
和
\Z
分别匹配输入的开始和结束。
|
是交替的。
\d
是数字字符类的简写。
+
是“一个或多个”重复说明符。因此,模式
\d+\Z
regex是否表示“输入结束时的数字序列”。
工具书类
文字剪裁
如果只需要一个文本后缀/前缀切碎,那么不需要regex。下面是一个例子:
public static String chopPrefix(String s, String prefix) {
if (s.startsWith(prefix)) {
return s.substring(prefix.length());
} else {
return s;
}
}
public static String chopSuffix(String s, String suffix) {
if (s.endsWith(suffix)) {
return s.substring(0, s.length() - suffix.length());
} else {
return s;
}
}
public static String chopPresuffix(String s, String presuffix) {
return chopSuffix(chopPrefix(s, presuffix), presuffix);
}
然后我们可以有:
System.out.println(
chopPrefix("abcdef", "abc")
); // def
System.out.println(
chopSuffix("abcdef", "ef")
); // abcd
System.out.println(
chopPresuffix("abcdef", "cd")
); // abcdef
System.out.println(
chopPresuffix("abracadabra", "abra")
); // cad