有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数字的Java正则表达式模式

我知道这个问题可能很愚蠢,但我正试图从文本中获得一些信息,在最后三个小时的尝试后,你是我最后的希望

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;
}   

共 (1) 个答案

  1. # 1 楼答案

    也许你可以用空格(string.split('\\s');)分割你的字符串,那么你应该有这样一个数组:

    1. DIC:
    2. C/40764176
    3. IC:407641'6
    4. 什莱达努

    获取第二个字符串,使用“/”将其拆分,然后获取第二个元素

    我希望这对你有帮助

    提示:您可以在结果之后使用正则表达式(([0-9IiGSOól]{8,10})进行检查