我知道这个问题可能很愚蠢,但我试图从文本中获取一些信息,在最后三个小时的尝试之后,你是我最后的希望..
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";
什么都行不通......你知道问题在哪里吗?
编辑:
我以这种方式使用正则表达式:
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;
}
答案 0 :(得分:1)
如果您的字符串模式已修复,则可以使用正则表达式
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
}
我期待任何角色(包括你在示例中展示的特殊角色),但是还有空格。
答案 1 :(得分:0)
可能你可以用空格(string.split('\\s');
)拆分你的字符串,然后你应该有这样的数组:
获取第二个字符串,使用'/'拆分它,然后获取第二个元素。
我希望它对你有所帮助。
提示:您可以使用正则表达式(([0-9IiGSOól]{8,10}
)