从一系列字符中第一次出现字符后的字符串中检索子字符串



我正试图从a-Z和a-Z 之间第一个出现的任何字符的字符串中检索子字符串

例如:

如果字符串是13BHO1234FO

则子字符串应该是BHO1234FO

即第一次出现字符"B"时的字符串。

试试这个。它只是删除你不想要的字符串的第一部分,然后返回其余部分。原始字符串保持不变。

String[] testCases =
{ "13BHO1234FO", "ARSTOP123!", "133KSLK", "122222" };
for (String s : testCases) {
String sub = s.replaceFirst("^[^A-Za-z]+", "");
System.out.println("'" + sub + "'");
}

打印用单引号括起来的子字符串以显示字符串。

'BHO1234FO'
'ARSTOP123!'
'KSLK'
''

您可以使用regexMatcher来查找第一个字母字符的索引,并从索引开始生成substring

import java.util.regex.*;
class Main {
public static void main(String[] args) {
String text = "13BHO1234FO";
Pattern pattern = Pattern.compile("[A-Za-z]");
Matcher matcher = pattern.matcher(text);
matcher.find();
int index = matcher.start();
String substr = text.substring(index);
System.out.println(substr);
}
}

试试这个:

public static void main(String[] args) {
String test = "13BHO1234FO";
System.out.println(test.replaceFirst("^.*?(?=[A-Za-z])", ""));
}

最新更新