Python正则表达式验证 URL,要求:前面是 http 或 https 或 ftp,然后加冒号(:),然后加斜杠(//),然后跟 任意非空字符
时间: 2024-03-05 18:49:54 浏览: 115
可以使用以下正则表达式来验证 URL:
```python
import re
pattern = re.compile(r'^(http|https|ftp):\/\/\S+$')
url = input("请输入 URL:")
if pattern.match(url):
print("URL 格式正确")
else:
print("URL 格式错误")
```
这个正则表达式的含义是:
- `^` 匹配字符串的开头
- `(http|https|ftp)` 匹配 http 或 https 或 ftp
- `:\/\/` 匹配冒号和斜杠
- `\S+` 匹配任意非空字符
- `$` 匹配字符串的结尾
注意,这里的冒号和斜杠需要转义,所以使用了双反斜杠。
相关问题
Java中使用正则表达式匹配出http://localhost:8081的主机
可以使用以下正则表达式来匹配出 http://localhost:8081 的主机:
```
^http://([\w.-]+)(:\d+)?/.*
```
解释一下:
- `^` 表示匹配字符串的开头
- `http://` 表示匹配 http:// 字符串
- `([\w.-]+)` 表示匹配主机名,其中 `\w` 表示匹配任意字母、数字、下划线,`.` 表示匹配点号,`-` 表示匹配连字符,`+` 表示匹配一个或多个字符
- `(:\d+)?` 表示匹配端口号,其中 `:` 表示匹配冒号,`\d` 表示匹配任意数字,`+` 表示匹配一个或多个数字,`?` 表示端口号可选
- `/.+` 表示匹配 URL 的路径部分,其中 `/` 表示匹配斜杠,`.+` 表示匹配一个或多个字符
以下是示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String url = "http://localhost:8081/hello/world";
Pattern pattern = Pattern.compile("^http://([\\w.-]+)(:\\d+)?/.*");
Matcher matcher = pattern.matcher(url);
if (matcher.find()) {
String host = matcher.group(1);
System.out.println(host);
}
}
}
```
输出结果为:
```
localhost
```
阅读全文