php正则匹配href中url地址详解

作者:袖梨 2022-06-25

正则匹配href中url

 代码如下 复制代码

hrefs*=s*(?:"(?<1>[^"]*)"|(?<1>S+))

取href的链接的

href是正常的href字符
s表示一个空格,*表示1个或者多个匹配,当前的意思是一个或者多个空格
=是正常的字符
?<1>在这里应该是命名捕获组,我不知道你这个正则是哪个流派的,但应该不是js和c#的,呵
S+,前面一个表示转义,这个的意思是后面带一个S,而S可以是多个,同样,"也是转义,因为"和都是正则的元字符
[^"],在方括号中的^,如果我没记错的话,应该是不包含的意思吧,就是不不含"

差不多了吧,不一定全部正确,你应该去了解一下正则的元正符再来看

 

*是指0或者多个 href= 和 href =都匹配

(?exp)   匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp)  匹配exp,不捕获匹配的文本,也不给此分组分配组号

"(?<1>[^"]*)" 匹配的 "任意字符串" 只要引号内不含^"就可以

还有一个作用就是把匹配的引号内的字串放在group 1里


(?<1>S+)这里可能是(?<1>S+)
匹配任意非空字串,并放入 group 1里

因此整个表达式应该是匹配一个
href属性,并把属性值放入 group 1中

这样可以在匹配后直接使用该属性值


url地址栏传参数中文乱码解决方法


php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解
url编码
语法: string urlencode(string str);
返回值: 字符串
函数种类: 编码处理

 代码如下 复制代码

$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "我的名字";
?>


url解码
还原 URL 编码字符串。
语法: string urldecode(string str);
返回值: 字符串
函数种类: 编码处理
例如:
对前面传过来的中文进行处理显示

:

 代码如下 复制代码

$DecodeStr=urldecode($_GET['name']);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>

相关文章

精彩推荐