我知道这个问题可能很愚蠢,但我正试图从短信中得到一些信息,而你是我在过去三个小时尝试后最后的希望。
DIC: C/40764176 IC: 407641'6
Dekujerne a t8ime se na shledanou 例如,我需要得到这个40764176
我需要得到8-10长度的字符串,有时会有一些特殊的字符,如I,i,G,S,O,ó,l),但我已经尝试了很多模式,但没有人工作.
我试过:
String generalDicFormatPattern = "([0-9IiGSOól]{8,10})";
String generalDicFormatPattern = ".*([0-9IiGSOól]{8,10}).*";
String generalDicFormatPattern = "\\b([0-9IiGSOól]{8,10})\\b";什么都不管用..。你知道问题出在哪里吗?
编辑:
我以这种方式使用regex:
private List<String> getGeneralDicFromLine(String concreteLine) {
List<String> allMatches = new ArrayList<String>();
Pattern pattern = Pattern.compile(generalDicFormatPattern);
Matcher matcher = pattern.matcher(concreteLine);
while (matcher.find()) {
allMatches.add(matcher.group(1));
}
return allMatches;
} 发布于 2013-08-25 19:35:14
如果字符串的模式是固定的,则可以使用regex
C/([^\s]{8,10})\sIC:样本代码:
String s = "DIC: C/40764176 IC: 407641'6";
Pattern p = Pattern.compile("C/([^\\s]{8,10})\\sIC:");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1)); // 40764176
}我期待任何字符(包括您在示例中显示的特殊字符),但需要一个空白。
发布于 2013-08-25 19:40:38
您可以使用空格(string.split('\\s');)拆分字符串,然后应该有如下数组:
获取第二个字符串,使用'/‘将其拆分,并获取第二个元素。
希望它能帮到你。
提示:您可以使用regex (([0-9IiGSOól]{8,10})检查结果后的结果。
https://stackoverflow.com/questions/18432765
复制相似问题