我的电话号码范围看起来像“ + 7312xxxx-+ 7657xxxx”(x和-之间的空格可能是也可能不是)之间的字符串。我需要剪切此字符串,并使用“ 7312xxxx”和“ 7657xxxx”获得字符串。我尝试一步一步地做,一个字符一个字符,但是它非常愚蠢和困难,我想我可以用正则表达式看起来像这样
String somestring="+7312xxxx - +7657xxxx";
String[] array=somestring.split("\someregexppattern");
但我不知道如何建立真正的正则表达式。请告诉我该怎么做。
编辑:感谢所有帮助我并给我答案的人,但知道我想知道哪种方法更快?用正则表达式或用“-”分隔?
您可以尝试以下正则表达式,
^([^-]*)-(.*)$
Java正则表达式将是
"^([^-]*)-(.*)$"
第一个被捕获的组包含之前的所有数字-
,第二个被捕获的组包含之后的所有数字-
要仅获取第一个和第二个数字而没有空格,
String s = "+7312xxxx - +7657xxxx";
Pattern p = Pattern.compile("^([^\\s-]*)\\s*-\\s*(.*)$");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
输出:
+7312xxxx
+7657xxxx
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句