这个问题在这里已经有了答案:Reference-Whatdoesthisregexmean?(1个回答)关闭3年前。$str="InstantOatsDrink-ChocolateFlavour165g(33gx5)";preg_match('/(?P.*)(?P\d+g)\((?P\d+g)x(?P\d+)\)/',$str,$m);echo"Title:".$m['title'].'';echo"Grammars:".$m['grammars'].'';echo"Portion:".$m['portion'].'';echo"Times:".$m['times'].'';我真的不知
我目前正在尝试使用PHP将token添加到CMS。用户可以输入(到WYSIWYG编辑器中)一个字符串,例如[my_include.php]。我们想提取任何具有这种格式的内容,并将其转换为以下格式的包含:include('my_include.php');任何人都可以协助编写RegExp和提取过程以允许这样做吗?理想情况下,我想将它们全部提取到一个数组中,以便我们可以在将其解析为include();?之前提供一些检查谢谢! 最佳答案 preg_replace('~\[([^\]]+)\]~','include"\\1";',$str)
这是无效的代码:Hyperlink';}?>我想要的是,如果链接前后有空格,它就不应该显示链接。所以现在它应该什么都不显示。但它仍然显示链接。 最佳答案 这样也可以匹配ID12,因为3不是空格,http:/的/也不是空格。你可以试试:preg_match_all('/^\S*\/videosite\.com\/(\w+)\S*$/i',$matchWith,$matches); 关于php-正则表达式(preg_match),我们在StackOverflow上找到一个类似的问题:
我正在尝试编写一个将错误文件名转换为正确文件名的函数。我尝试使用正则表达式来完成此操作,它运行良好但每次尝试更正名称时都会发出通知。这是我的代码:privatefunctionclean_filename($filename){$reserved=preg_quote('\/:*?"|','/');$filename=preg_replace("/([\\x00-\\x20\\x7f-\\xff".$reserved."])/e","_",$filename);return$filename;}通知是:Notice:Useofundefinedconstant_-assumed'_'i
我想删除产品名称中带有数字(引用)或小字(2个字符或更少)的词,但找不到合适的正则表达式。一些例子:“Chaineanti-rebondECS-2035”应该变成“Chaineanti-rebond”“Guide35cmOregonIntenz”应该变成“GuideOregonIntenz”“TronçonneusesansfilAKE30LI-Guide30cm36V”应该变成“TronçonneusesansfilAKE-Guide”我在PHP中这样做:preg_replace('#([^A-Za-z-]+)#','',''.wd_remove_accents($modele).'
您好,感谢您查看我的问题。我需要从HTML片段中获取一些数据。此来源是可信/结构化来源,因此我认为可以在此HTML中使用正则表达式。我猜php中的Dom和其他高级功能有点矫枉过正。这是HTML片段的格式。TypeJohnSmith在上面,请注意前2个DIV标签设置了ID。可能有多个row-custom_1之类的div标签,因此我需要对它们进行转义。我实际上在正则表达式方面很差,所以我期待你的帮助,从上面的html片段中抢走JohnSmith。可能是这样的*GRABTHIS但我不知道如何在正则表达式中做到这一点。JohnSmith部分肯定不会包含任何html。它来自可信赖的来源,它会剥离
如果用户更改密码,我正在尝试在PHP中进行检查,他们的新密码必须为8个或更多字符,并且至少有1个非字母数字密码。我应该如何检查它以及正则表达式是什么?检查长度是简单的部分strlen>=8。我的问题是正则表达式。即使经过多年的计算机科学学习,我对正则表达式真的一无所知。谢谢 最佳答案 尝试这样的事情来检查他们是否使用了非字母数字字符:if(!preg_match('/[^A-Za-z0-9]+/',$password)||strlen($password)如果$password不包含至少一个不在列表中的字符(字母数字字符)。
我尽力把一个带数字的句子中的所有单词都去掉了,但还是没有成功!我什至尝试了以下正则表达式:$regex='/(\\s+\\w{1,2}(?=\\W+))|(\\s+[a-zA-Z0-9_-]+\\d+)/';$x=preg_replace($regex,"",$x);我正在努力完成以下任务:包含数字和任何特殊字符(例如-和_)的单词的原始文本:ThisisS3F8Gm7j34mh98H40D-3D3990843-432423LSDF34X4itverygood343c3.最终文本需要如下:Thisisverygood. 最佳答案 返
我的一些代码有问题。这是代码$test='123';$i=0;$find[$i]="#(.*)#is";$replace[$i]="5";$i++;$find[$i]="#(.*)#is";$replace[$i]="$1";echohtmlentities(preg_replace($find,$replace,$test));目前这只在结果中显示数字5。但我希望它显示153有谁知道我做错了什么?谢谢 最佳答案 是的,因为.*匹配所有内容(包括标签),所以你匹配的太多了。如果您通过阻止正则表达式匹配尖括号来限制正则表达式不跨标记边
我在这里尝试做的是获取一个通常可能包含代码注释的字符串,并将其替换为其他内容,尤其是将其包装在其他内容中。我很确定preg_replace函数可以在这里工作,但我不知道从哪里开始使用Regex。例如:Helloworld//thisisacommentTesting//nottestingTestagain会变成Helloworld%//thisisacomment%Testing%//nottesting%Testagainpreg_replace('???','%$1%',$matches);是我自己能想到的,非常感谢任何帮助! 最佳答案