草庐IT

SRE_Match

全部标签

PHP preg_match 长度 3276 限制

在某些情况下,PHP的preg_match似乎对匹配重复字符有3276个字符的限制。即^(.|\s){0,3276}$有效,但^(.|\s){0,3277}$无效。它似乎并不总是适用,因为/^(.){0,3277}$/有效。我无法在PHP文档或错误跟踪器中的任何地方找到它。数字3276似乎有点奇怪,我唯一能想到的是它大约是32767的1/10,这是有符号16位整数的极限。preg_last_error()返回0。我已经在http://www.phpliveregex.com/上重现了这个问题以及我的本地系统和网络服务器。编辑:看起来我们从代码中得到“警告:preg_match():编译

php - preg_match :print: class matches tab character

for($i=0;$i";elseecho"chr($i)doesntmatch:print:";在我的Windows系统上,chr(9)的输出是:chr(9)matches:print:同样的代码,在Linux系统上,输出为:chr(9)doesntmatch:print:为什么:print:类仅在Windows上匹配\t?PHP5.5.12 最佳答案 这可能是语言环境问题,但您手头上一定有一个非常时髦的语言环境。POSIX规定没有cntrl可以print,没有space或blank可以print除非它是空格字符本身。在“C”语言

php - regex_match 的表单验证规则

我试图弄清楚我在这个验证规则上做错了什么,因为它说了这个错误。验证规则:$this->form_validation->set_rules('username','Username','trim|required|xss_clean|regex_match[a-z0-9]');错误:Severity:WarningMessage:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash 最佳答案 首先,您需要修正您的模式。您现在的模式是a-

php - 警告 : preg_match() [function. 预匹配]:未知修饰符 '/'

这个问题在这里已经有了答案:Warning:preg_replace():Unknownmodifier(3个答案)关闭3年前。我正在尝试使用preg_match返回页面源代码中包含在“”中的所有URL。我使用的代码是preg_match('"http://(.+?)\"',$code,$matches);我收到以下错误:Warning:preg_match()[function.preg-match]:Unknownmodifier'/'in....online13

php - preg_match_all() [function.preg-match-all] : Unknown modifier ']'

使用了几种不同的模式,但它们都出现了这个错误-那是怎么回事?我最短的诊断是:$pattern="]*[^/])>";preg_match_all($pattern,$subject,$matches);谢谢 最佳答案 您缺少正则表达式分隔符。尝试:$pattern="#]*[^/])>#i"; 关于php-preg_match_all()[function.preg-match-all]:Unknownmodifier']',我们在StackOverflow上找到一个类似的问题:

php - 任何 preg_match 来检查 url 是否是 youtube/vimeo/dailymotion 视频链接?

检查url是否为youtube/vimeo/或dailymotion的视频链接的最佳preg_match语法是什么?也许如果它很难,那么就检查域名。谢谢 最佳答案 我不会为此使用preg_match()。我想parse_url()可能是更好的选择。您可以将URL字符串传递给它,它会为您将其分解为所有子组件。我不知道您提到的那些网站的具体视频URL是什么样子,但我相信您可以为每个可以与parse_url()来识别。例如,YouTube链接的分割可能如下所示:$res=parse_url("http://www.youtube.com/

php - 如何检查 preg_match() 是否为 False 而不是 True?

我有这段代码可以确保用户名只是字母和数字。但是我的代码设置方式,我需要它来检查preg_match的结果是false。现在它说“ifsecureechothis”。我需要它的逻辑说“如果不安全就说这个”。我该怎么做?if(preg_match('/[A-Z]+[a-z]+[0-9]+/',$username)){echo'Secureenough';} 最佳答案 你可以像这样否定条件:if(!preg_match('/^[A-Za-z0-9]+$/',$username)){echo'Notsecureenough';}此外,如果您

带有电子邮件验证问题的 php preg_match

我正在使用带有preg_match函数的php验证电子邮件地址。但我不断收到以下错误preg_match():Noendingdelimiter'^'found这是我的preg_match模式$pattern="^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";如何解决这个问题? 最佳答案 只需使用:$pattern="/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z

php - PHP 中的 HTTP if-none-match 和 if-modified-since 以及 304 说明

我的问题是关于当我从代理/客户端请求同时if-none-match和if-modified-since时如何回复HTTP304“未修改”。来自RFC2616第14.26节(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26):Ifnoneoftheentitytagsmatch,thentheserverMAYperformtherequestedmethodasiftheIf-None-Matchheaderfielddidnotexist,butMUSTalsoignoreanyIf-Modified-Si

php - 如何捕获无效的 preg_match 模式?

我正在编写一个PHP脚本,它接受来自用户的正则表达式模式,该模式由preg_match()使用。如何检查模式是否有效? 最佳答案 根据docs,preg_match()returnsFALSEifanerroroccurred.问题是它也会发出警告。处理此问题的一种方法是抑制错误消息的输出,捕获返回值,如果错误为假,则使用error_get_last()输出错误。有点像$old_error=error_reporting(0);//Turnofferrorreporting$match=preg_match(......);if($