有 Java 编程相关的问题?

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

java提取字符串,数字组,下一个字符串,下一个数字组

我是Regex的新手,我正在努力寻找解决问题的方法。我有一个包含多个条目的文件。下面是一个例子:

1)你好,我的是废话。等等,5677号楼,98号门等等

2)嗨,我的狗叫布拉布拉36767号楼&;898900门等等

3)嘿,现在是345号楼DR 898。诸如此类,诸如此类,333号楼,89797号门诸如此类

我需要从每一行中提取建筑编号和门编号的每个实例。每个条目中唯一不变的模式是:

1)“建筑”这个词总是存在的

2)“Building”后面总是跟一组整数。。。字母“D | D”。。。和第二组整数(后跟一个非整数)

我想做的就是把建筑号和门牌号打印到控制台上,但我很难将其转换为正则表达式模式。我正在使用Java


共 (1) 个答案

  1. # 1 楼答案

    Regex将查找建筑编号-

    (?<=Building\\s)[0-9]+
    

    同样地,对于门号-

    (?<=Door\\s)[0-9]+
    

    总而言之——

    public static void main(String[] args) {
        String inputStr = "Hello my is blah blah blah. Blah blah Building 5677 - Door 98 blah blah blah";
    
        Pattern patternBuilding = Pattern.compile("(?<=Building\\s)[0-9]+");
        Pattern patternDoor = Pattern.compile("(?<=Door\\s)[0-9]+");
        Matcher matcherBuilding = patternBuilding.matcher(inputStr);
        Matcher matcherDoor = patternDoor.matcher(inputStr);
        if (matcherBuilding.find())
            System.out.println("Building number is " + matcherBuilding.group());
        if (matcherDoor.find())
            System.out.println("Door number is " + matcherDoor.group());
    }