Java中使用正则表达式

今天在工作中需要使用正则表达式来处理字符串的问题,因此写了一个实例。

需要处理的问题是在http://192.168.1.33:8080/index.html字符串中找到"//"和":"之间的字符串192.168.1.33, 使用的正则表达式是匹配两个字符之间的字符串但不包含这两个字符,这在网上搜索便能找到现成的表达式:(?<=A).*?(?=B)

接下来的问题是在Java中如何使用正则表达式,实例代码如下:

public class Test {
    public static void main(String[] args) {
        String content = "http://192.168.1.33:8080/index.html";
        // (?<=A).*?(?=B)  匹配A和B之间但不包含A和B的字符串,在这里A是// B是:
        String pattern = "(?<=//).*?(?=:)";
        Pattern r = Pattern.compile(pattern);
        Matcher matcher = r.matcher(content);
        if (matcher.find()){
            System.out.println(matcher.group(0));
        }else {
            System.out.println("没有匹配的字符串");
        }
    }
}

运行结果


image.png

使用java.util.regex包下的Pattern 类和Matcher 类

参考链接:https://www.runoob.com/java/java-regular-expressions.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容