正则表达式 (preg_match_all)

发布于 2024-12-17 19:27:00 字数 534 浏览 4 评论 0原文

这是我的代码:

    <?php
    $matchWith = "http://videosite.com/ID123";
    preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
    foreach($matches[1] as $value)
    {  
            print '<a href="http://videosite.com/'.$value.'">
    Hyperlink
    </a>';        

    }  
    ?>

它不起作用。 我想排除链接(带有 ID)之前或之后有空格的每个匹配项。 我为此使用了 \S

例如,如果:

$matchWith = " http://videosite.com/ID123 ";

它不应该显示任何内容。

谢谢。

This is my code:

    <?php
    $matchWith = "http://videosite.com/ID123";
    preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
    foreach($matches[1] as $value)
    {  
            print '<a href="http://videosite.com/'.$value.'">
    Hyperlink
    </a>';        

    }  
    ?>

It's not working.
I want to exclude every match that has a whitespace before or after the Link (with the ID).
I used \S for this.

For example if:

$matchWith = " http://videosite.com/ID123 ";

it should not display anything.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

若相惜即相离 2024-12-24 19:27:00

您放错了正则表达式中的前导斜杠。
尝试使用以下内容:

preg_match_all('/\Svideosite\.com\/(\w+)\S/i', $matchWith, $matches);

You are misplacing the leading slash in the regex.
Try to use the following:

preg_match_all('/\Svideosite\.com\/(\w+)\S/i', $matchWith, $matches);
等待圉鍢 2024-12-24 19:27:00

您缺少起始分隔符和转义符:

preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
                ^  ^

You are missing starting delimiter and an escape:

preg_match_all('/\S\/videosite\.com\/(\w+)\S/i', $matchWith, $matches);  
                ^  ^
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文