我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字符串开头和结尾的字母或数字接受句点、破折号、下划线、字母、数字长度必须在5-20个字符之间preg_match('/^[a-zA-Z0-9]+[.-_]*[a-zA-Z0-9]{5,20}$/',$username) 最佳答案 将需求分解成更小的部分,您会发现它变得容易得多:第一个字符必须是1个字母或数字中间字符必须是句点、破折号、下划线、字母或数字最后一个字符必须是字母或数字由于第一段和最后一
\\$DigitalSignaturehavefullnamevaluepassed$SignatureMatch='/'.strtolower($NameFirst.''.$NameLast).'$/';if(true==preg_match($SignatureMatch,strtolower($DigitalSignature))){$boolIsValid=true;}我正在使用此代码来精确匹配名字和姓氏与数字签名的匹配。但这会在生产(实时)错误日志中向我报告错误。preg_match():Unknownmodifier'b'我无法重现此错误。我怎样才能首先得到这个错误。以及如
我有一个包含项目列表的PHP字符串,我想获取最后一个。现实要复杂得多,但归结为:$Line='First|Second|Third';if(preg_match('@^.*|(?P.+)$@',$Line,$Matches)>0){print_r($Matches);}我希望Matches['last']包含“Third”,但它不起作用。相反,我让Matches[0]包含完整的字符串,没有其他内容。我做错了什么?请不要有变通办法,我可以自己做,但我真的很想将它与preg_match一起使用 最佳答案 你有这个:'@^.*|(?P.+
正在尝试解析以下元素的值:inputtype="hidden"name="csrf_token"value="VUNht8fnmxmJXJIMassWW8SAwWKNJ3SC8POA4FtSqEKhG1rcoB3ZNqcPqa615tPsF_hzW0l4zDjSEHJYMz9Ogw==">元素周围的区域如下所示:使用以下代码行:preg_match("/csrf_token.value=.(.+==).>/",$result,$output_array);$output_array留空,如http://www.phpliveregex.com/正则表达式是正确的。我做错了什么?
以下代码从推文中提取#hashtags并将它们放入变量$matches中。$tweet="thishasa#hashtaga#badhash-taganda#goodhash_tag";preg_match_all("/(#\w+)/",$tweet,$matches);var_dump($matches);有人可以向我解释为什么以下结果有2个相同的数组,而不是只有1个吗?array(2){[0]=>array(3){[0]=>string(8)"#hashtag"[1]=>string(8)"#badhash"[2]=>string(13)"#goodhash_tag"}[1]=>a
我有一个以前的程序员编写的代码,一个抛出编译错误的正则表达式preg_match:$regex_t="/".$op."(?\\>[^".$op.$cl."]+)*".$cl."/s";preg_match($regex_t,$text,$inner);我收到的警告是:Warning:preg_match():Compilationfailed:unrecognizedcharacterafter(?or(?-atoffset4另外,我想提一下var_dump($regex_t)的值是:string'/\{(?\>[^\{\}]+)*\}/s'(length=21)
这个问题在这里已经有了答案:Needaregexthatwillcheckifthestringonlyconsistlettersa-zandnumbersandunderscore(_)andhyphen(-)(5个答案)关闭9年前。我试过:print_r(preg_match("[A-Za-z\\-]",$str));我越来越假了。我不太擅长正则表达式,但它似乎适用于http://regexpal.com/我是不是漏掉了什么?编辑:例如$str=zREBsZtyvw
这个问题已经有了答案:preg_match():Compilationfailed:invalidrangeincharacterclassatoffset4答我使用laravel作为框架,并尝试使用自己的preg_match函数来验证表单。以下是我的代码:Validator::extend('alpha_num_spaces',function($attribute,$value){returnpreg_match('/^([-a-z0-9_-\s])+$/i',$value);});现在,我已经在生产服务器上运行了这个程序,它运行得很好,但是,在我的本地计算机上,我收到:preg_
我正在尝试根据模式确定一个或多个匹配项是否存在于数组中,数组的例子:Array([author_id]=>1[channel_id]=>1[site_id]=>1[entry_id]=>6[url_title]=>test_title_with_file2[title]=>TestTitlewithfile[field_id_1_directory]=>1[field_id_4_directory]=>1[submit]=>Submit[entry_date]=>1278219110)我想确定field_id_x_directory键或多个键是否存在,如果存在,则循环遍历每个键并运行一
我在for循环中读取了一系列.txt文件。我在一些文本文件中放置了一个token,格式为[widget_]因此,例如,文本文件的全部内容可能是[widget_search]。另一个文本文件可能包含内容[widget_recent-posts]。其他人可能只有html格式的文本,根本没有token。在for循环中,我正在执行preg_match以查看文本文件的内容是否与我的标记模式匹配。如果匹配,我将执行一些条件代码。但是,当我运行跟踪测试以查看是否存在匹配时出现错误。错误是:警告:preg_match()[function.preg-match]:编译失败:在C:\xampplite\