我检查了其他答案,但似乎无法执行以下操作。请帮助某人:)我想删除中间的所有内容,包括特定的html注释HTML:SomeHTMLthatmuststaysomehtmlthatmustgoSomemoreHTMLthat'sgottastaythisalsoneedstogo因此之间的所有内容和并且评论本身需要去我的preg_replace模式(这显然是错误的):"/.*?/"结果应该是SomeHTMLthatmuststaySomemoreHTMLthat'sgottastay感谢您提前检查和回答:) 最佳答案 感谢@mlwaco
我有一个包含项目列表的PHP字符串,我想获取最后一个。现实要复杂得多,但归结为:$Line='First|Second|Third';if(preg_match('@^.*|(?P.+)$@',$Line,$Matches)>0){print_r($Matches);}我希望Matches['last']包含“Third”,但它不起作用。相反,我让Matches[0]包含完整的字符串,没有其他内容。我做错了什么?请不要有变通办法,我可以自己做,但我真的很想将它与preg_match一起使用 最佳答案 你有这个:'@^.*|(?P.+
我有以下使用正则表达式的php代码:$result_from_pull="T601092";if(preg_match("/^[A-Za-z0-9]{2,6}[0-9]{1,3}$/",$result_from_pull)){echo"Wefounda\"valid\"UFSkey.";}我要做的是将字符串分成两部分。第一部分匹配模式的开头,[A-Za-z0-9]{2,6},而第二部分匹配模式的结尾,[0-9]{1,3}。如何使用preg_split来完成此操作?可以在一个preg_split上完成,还是我应该同时使用两个或另一个函数? 最佳答案
正在尝试解析以下元素的值:inputtype="hidden"name="csrf_token"value="VUNht8fnmxmJXJIMassWW8SAwWKNJ3SC8POA4FtSqEKhG1rcoB3ZNqcPqa615tPsF_hzW0l4zDjSEHJYMz9Ogw==">元素周围的区域如下所示:使用以下代码行:preg_match("/csrf_token.value=.(.+==).>/",$result,$output_array);$output_array留空,如http://www.phpliveregex.com/正则表达式是正确的。我做错了什么?
我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结
以下代码从推文中提取#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
在top-votedanswer至thisfantasticquestion,以下正则表达式用于preg_replace调用(来自答案的auto_version函数):'{\\.([^./]+)$}'这个正则表达式的最终目标是从给定的文件名中提取文件的扩展名。但是,我对为什么这个正则表达式的开头起作用感到困惑。即:为什么\\.匹配方式与\.相同在正则表达式中?前者不应该匹配(a)一个文字反斜杠,后跟(b)任何字符,而第二个匹配一个文字句点吗?singlequotedstrings的规则说明\\产生文字反斜杠。考虑这个简单的例子:$regex1='{\.([^./]+)$}';//Var
我有一个以前的程序员编写的代码,一个抛出编译错误的正则表达式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)
我头晕目眩,我试着自己做这个,但想不通。所以我将再次求助于你们的知识。这些都是我可能的字符串:Myheadisspinningwith,pregreplaceMyheadisspinning,with,pregreplaceMyheadis,spinning,with,pregreplaceMyhead,is,spinning,with,pregreplace(注意上面字符串中的逗号)我希望所有“preg-replaced”/“string-replaced”最后只有一个逗号。(就像第一个示例中显示的那样)我的头在旋转,pregreplace提前致谢;) 最
这个问题在这里已经有了答案:Needaregexthatwillcheckifthestringonlyconsistlettersa-zandnumbersandunderscore(_)andhyphen(-)(5个答案)关闭9年前。我试过:print_r(preg_match("[A-Za-z\\-]",$str));我越来越假了。我不太擅长正则表达式,但它似乎适用于http://regexpal.com/我是不是漏掉了什么?编辑:例如$str=zREBsZtyvw