我正试图从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'
''
您可以使用regex
和Matcher
来查找第一个字母字符的索引,并从索引开始生成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])", ""));
}