java 网页地址正则表达式
时间: 2023-11-24 17:37:55 浏览: 28
以下是 Java 中用于匹配网页地址的正则表达式:
```java
String pattern = "(https?://)?(www\\.)?[a-zA-Z0-9]+(\\.[a-zA-Z]{2,}){1,}(/\\S*)?";
```
该正则表达式的含义如下:
- `(https?://)?`:匹配以 `http://` 或 `https://` 开头的 URL,`?` 表示 `s` 可能有也可能没有。
- `(www\\.)?`:匹配以 `www.` 开头的 URL,`?` 表示 `www.` 可能有也可能没有。需要注意的是,正则表达式中的 `.` 需要转义。
- `[a-zA-Z0-9]+`:匹配域名中的字母和数字,`+` 表示至少出现一次。
- `(\\.[a-zA-Z]{2,}){1,}`:匹配域名后面的点和至少两个字母的顶级域名,`{1,}` 表示至少出现一次。
- `(/\\S*)?`:匹配 URL 中的路径部分,`?` 表示路径部分可能有也可能没有。其中 `\\S` 匹配任意非空白字符,`*` 表示任意数量。
示例代码如下:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UrlRegexTest {
public static void main(String[] args) {
String pattern = "(https?://)?(www\\.)?[a-zA-Z0-9]+(\\.[a-zA-Z]{2,}){1,}(/\\S*)?";
Pattern regex = Pattern.compile(pattern);
String url1 = "https://www.baidu.com";
String url2 = "http://www.google.com/search?q=java";
String url3 = "www.csdn.net/article/regex.html";
Matcher matcher1 = regex.matcher(url1);
Matcher matcher2 = regex.matcher(url2);
Matcher matcher3 = regex.matcher(url3);
System.out.println(url1 + " is URL: " + matcher1.matches());
System.out.println(url2 + " is URL: " + matcher2.matches());
System.out.println(url3 + " is URL: " + matcher3.matches());
}
}
```
输出结果如下:
```
https://www.baidu.com is URL: true
http://www.google.com/search?q=java is URL: true
www.csdn.net/article/regex.html is URL: true
```