寻找技巧以更好地理解 Perl 兼容的正则表达式运算符和语法

我的问题是关于 Perl 兼容的正则表达式运算符和语法。我已经了解了“/hello/”的基本语法,而 /i 表示不区分大小写。我在jotform.com上对此进行了调查,并将对此进行研究,直到我有更深入的了解。但我希望有人可以让我先了解我在下面发布的 (2) PCRE 中的 Perl 语法和运算符。它们都致力于防止用户以文本区域的形式发布链接,但在语法和运算符上有很大不同。只是想知道一个正则表达式是否优于另一个。哪个最好,为什么?

更新:经过几个月的实时测试,PCRE 1 似乎无法阻止 PHP 联系表单中的 URL。PCRE 2 似乎确实可以在同一实时测试期间阻止 PHP 联系表单中的 URL。

下面的 2 个正则表达式最初是在How to prevent spam URLs in a PHP contact form 中找到的

有比 PCRE 2 更好的正则表达式吗?任何帮助或建议将不胜感激。

谢谢。

<?php


//PCRE 1 - Does not work to prevent URLs 


if (preg_match( '/www\.|http:|https:\/\/[a-z0-9_]+([\-\.]{1}[a-z_0-9]+)*\.[_a-z]{2,5}'.'((:[0-9]{1,5})?\/.*)?$/i', $_POST['message']))

{

echo 'error please remove URLs';

}else

{....


//PCRE 2 - Does work to prevent URLs 


if (preg_match("/\b(?:(?:https?|ftp|http):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$_POST['message']))

{

echo 'error please remove URLs';

}else

{....


?>


眼眸繁星
浏览 72回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP