php preg match 变量,php preg_match – >在变量中保存匹配的值?

这篇博客讨论了如何使用PHP的preg_match函数从内容中匹配YouTube视频链接。作者提到了当前的正则表达式模式,并解释了如何通过$found数组获取匹配的字符串。文章指出,$found[2]将包含完整的URL,而其他数组元素分别对应正则表达式的各个部分。此外,还建议优化正则表达式以减少不必要的捕获组。
摘要由CSDN通过智能技术生成

我的$content变量存储了youtube视频链接.

$youtubeurl = "/(\[TRACK=)((http|https)(\:\/\/)(www|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)(\.youtube\.)(com|it|co\.uk|ie|br|pl|jp|fr|es|nl|de)([a-zA-Z0-9\-\.\/\?_=&;]*))(\])/si";

$video = preg_match($youtubeurl, $content , $found);

print_r($video); // 1

如何将匹配字符串的值存储在变量中?现在,如果我print_r($video)我刚刚打印1表示已找到它.但是我需要在变量中保存找到的字符串.我怎样才能做到这一点?

谢谢

解决方法:

你应该在$found [2]中找到它

它包含所有捕获的匹配,这是您在括号中得到的所有模式.

> $found [0] =完整匹配

> $found [1] =第一个表达式[TRACK =

> $found [2] =整个网址,您有多个子网 – 这些将形成以下捕获的匹配:

> $found [3] = http或https

> $found [4] = separator://

> $found [5] =子域名

> $found [5] = .youtube.

> $found [6] =顶级域名

> $found [7] =路径

> $found [8] =关闭]

显然,您正在以相当浪费的方式使用括号,因为您正在捕获您无意使用的数据.您可以使用(?:)作为一种分组模式而不捕获的方法,例如(?:http | https)匹配http或https,但不捕获它.

标签:php,preg-match

来源: https://codeday.me/bug/20190621/1255963.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值