字符串在数字和符号后拆分
String split after a number and symbol
我有一个示例字符串,例如
"ZZZ-1234567890-from ABC-2 DEF"
我需要输出为:
"from ABC-2 DEF"
所有示例字符串的格式均为
"ZZZ-numbers-Strings"
我需要在
之后获取字符串部分
"ZZZ-numbers-"
我尝试使用split()
但无法解决。感谢您的帮助!
更新
再次阅读您的问题后,知道您的String
格式为
"ZZZ-numbers-Strings" 而你想要 "ZZZ-numbers-"
之后的一切
然后您可以使用 "ZZZ-\d+-" 的正则表达式模式进行拆分。这将生成一个 2 元素数组,您希望索引 1 处的结果。
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
String[] split = data.split("ZZZ-\d+-");
System.out.println(split[0]);
System.out.println(split[1]);
}
结果:
(blank line for split[0])
from ABC-2 DEF
旧答案
这看起来更像是 substring()
和 indexOf()
的工作,只要 "from" 在您的 String
中只存在一次并且您想捕获 [= 之后的所有内容38=] 包括 "from".
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.substring(data.indexOf("from")));
}
结果:
来自 ABC-2 DEF
简单,使用String.split("ZZZ-\d+-")[1]
根据您的格式,您可能想要删除第一部分 "ZZZ-numbers-"
将 replaceAll 与正则表达式结合使用(受@Shar1er80 回答启发):
public static void main(String[] args) {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.replaceAll("^.{3}[-][0-9]+[-]",""));
}
我有一个示例字符串,例如
"ZZZ-1234567890-from ABC-2 DEF"
我需要输出为:
"from ABC-2 DEF"
所有示例字符串的格式均为
"ZZZ-numbers-Strings"
我需要在
之后获取字符串部分"ZZZ-numbers-"
我尝试使用split()
但无法解决。感谢您的帮助!
更新
再次阅读您的问题后,知道您的String
格式为
"ZZZ-numbers-Strings" 而你想要 "ZZZ-numbers-"
之后的一切然后您可以使用 "ZZZ-\d+-" 的正则表达式模式进行拆分。这将生成一个 2 元素数组,您希望索引 1 处的结果。
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
String[] split = data.split("ZZZ-\d+-");
System.out.println(split[0]);
System.out.println(split[1]);
}
结果:
(blank line for split[0])
from ABC-2 DEF
旧答案
这看起来更像是 substring()
和 indexOf()
的工作,只要 "from" 在您的 String
中只存在一次并且您想捕获 [= 之后的所有内容38=] 包括 "from".
public static void main(String[] args) throws Exception {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.substring(data.indexOf("from")));
}
结果:
来自 ABC-2 DEF
简单,使用String.split("ZZZ-\d+-")[1]
根据您的格式,您可能想要删除第一部分 "ZZZ-numbers-"
将 replaceAll 与正则表达式结合使用(受@Shar1er80 回答启发):
public static void main(String[] args) {
String data = "ZZZ-1234567890-from ABC-2 DEF";
System.out.println(data.replaceAll("^.{3}[-][0-9]+[-]",""));
}