今天在工作中需要使用正则表达式来处理字符串的问题,因此写了一个实例。
需要处理的问题是在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("没有匹配的字符串");
}
}
}
运行结果
使用java.util.regex包下的Pattern 类和Matcher 类
参考链接:https://www.runoob.com/java/java-regular-expressions.html