php 正则匹配url
时间: 2023-09-06 19:13:28 浏览: 138
可以使用以下正则表达式来匹配 URL:
```php
$pattern = '/^(http|https):\/\/[a-z0-9-]+(\.[a-z0-9-]+)+([\/?#].*)?$/i';
```
这个正则表达式可以匹配以 "http://" 或 "https://" 开头的 URL,包括域名和路径。其中:
- `(http|https)` 表示匹配 "http" 或 "https"。
- `:\/\/` 表示匹配 "://"。
- `[a-z0-9-]+(\.[a-z0-9-]+)+` 表示匹配域名,其中 `[a-z0-9-]+` 表示匹配域名中的字母、数字和横线,`(\.[a-z0-9-]+)+` 表示匹配域名后面的点和字母、数字、横线组合。
- `([\/?#].*)?` 表示匹配路径,其中 `\/` 表示匹配斜杠,`?` 表示匹配问号,`#` 表示匹配井号,`.*` 表示匹配任意字符零次或多次,`()` 表示这部分内容可以出现零次或一次。
示例代码:
```php
$url = 'https://www.example.com/path?query=123#fragment';
if (preg_match('/^(http|https):\/\/[a-z0-9-]+(\.[a-z0-9-]+)+([\/?#].*)?$/i', $url)) {
echo 'URL is valid';
} else {
echo 'URL is invalid';
}
```
相关问题
php正则匹配url:http://cms.zgqx.gov.cn/
可以使用以下正则表达式来匹配这个URL地址:
```php
$pattern = '/(http|https):\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[a-zA-Z0-9\/+&=%#?.!_-]*/';
```
然后使用 PHP 的 preg_match() 函数可以对字符串进行匹配,示例代码如下:
```php
$url = 'http://cms.zgqx.gov.cn/';
$pattern = '/(http|https):\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[a-zA-Z0-9\/+&=%#?.!_-]*/';
if (preg_match($pattern, $url, $matches)) {
echo '匹配成功!';
} else {
echo '匹配失败!';
}
```
输出结果为:
```
匹配成功!
```
这样就成功地匹配出了这个URL地址。
php 过滤url_php用正则表达式匹配URL的简单方法
可以使用 PHP 内置的 `preg_match()` 函数来匹配 URL,具体代码如下:
```php
$url = "https://www.example.com/index.php?id=123";
$pattern = '/^(http[s]?:\/\/)?[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}([\/\w\-\.\?\=\&]*)*$/';
if (preg_match($pattern, $url)) {
echo "URL is valid";
} else {
echo "URL is invalid";
}
```
这里使用的正则表达式匹配了 URL 的格式,可以匹配 HTTP 或 HTTPS 协议,域名,以及可能包含的路径、查询参数等。如果 URL 符合格式,就返回“URL is valid”,否则返回“URL is invalid”。
阅读全文