我一直试图弄清楚如何将输入字符串的模式与这种字符串匹配:
“xyz 123456789”
通常,每次输入前3个字符(可以是大写或小写),最后9个是数字(任意组合)时,应接受输入字符串。
所以,如果我有i / p string =“Abc 234646593”,那么它应该是匹配的(允许一个或两个空格)。如果“Abc”和“234646593”应该以单独的字符串存储,那也很棒。
我看到了很多正则表达式,但还没有完全理解它。
答案 0 :(得分:4)
这是一个有效的Java解决方案:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regex {
public static void main(String[] args) {
String input = "Abc 234646593";
// you could use \\s+ rather than \\s{1,2} if you only care that
// at least one whitespace char occurs
Pattern p = Pattern.compile("([a-zA-Z]{3})\\s{1,2}([0-9]{9})");
Matcher m = p.matcher(input);
String firstPart = null;
String secondPart = null;
if (m.matches()) {
firstPart = m.group(1); // grab first remembered match ([a-zA-Z]{3})
secondPart = m.group(2); // grab second remembered match ([0-9]{9})
System.out.println("First part: " + firstPart);
System.out.println("Second part: " + secondPart);
}
}
}
打印出来:
First part: Abc Second part: 234646593