我使用preg_match('/[a-z]+[0-9]/',strtolower($_POST['value']))检查字符串是否同时包含字母和数字。我怎样才能改变它只允许5~15个字符?/[a-z]+[0-9]{5,15}/不起作用。更新现在我尝试了:if(preg_match('/^[a-z0-9]{5,15}$/',strtolower($_POST['value']))){echo'Valid!';}else{echo'NOOOOO!!!';}如果我在输入字段中键入“dfgdfgdfg”,它会显示“有效!”。该值必须同时包含字母和数字,并且介于5-15个字符之间。
我正在编写一个快速的preg_replace来从CSS中删除注释。CSS注释通常有这样的语法:/*DevelopmentClasses*//*Un-commentmeforeasytesting(willmakeitsimplertoseeerrors)*/所以我试图杀死/*和*/之间的所有内容,如下所示:$pattern="#/\*[^(\*/)]*\*/#";$replace="";$v=preg_replace($pattern,$replace,$v);没有骰子!它似乎在正斜杠上窒息,因为如果我从模式中取出/s,我可以让它删除注释文本。我尝试了一些更简单的模式,看看我是否可以去
这个问题在这里已经有了答案:Warning:preg_replace():Unknownmodifier(3个答案)关闭3年前。假设$body等于somethingthatdoesnotinterestmesomehtmlcodesomethingthatdoesnotinterestme如果我用$body=preg_replace("(.*)(.*)(.*)","$2",$body);我得到:Warning:preg_replace()[function.preg-replace]:Unknownmodifier'我该如何纠正?
这个问题在这里已经有了答案:PHPregularexpressions:Noendingdelimiter'^'foundin(2个答案)关闭9年前。警告:preg_match():在第29行的.../functions/validations.php中找不到结束分隔符“^”代码:if(preg_match($mail_pat,$email,$components)){我应该在什么地方进行编辑?
如何使用preg_replace将多个下划线替换为一个下划线? 最佳答案 +operator(quantifier)匹配最后一个字符的多个实例(、字符类或捕获组或反向引用)。$string=preg_replace('/_+/','_',$string);这会将一个或多个下划线替换为单个下划线。技术上更正确的问题标题是只替换两个或更多:$string=preg_replace('/__+/','_',$string);或者用大括号写量词:$string=preg_replace('/_{2,}/','_',$string);也许然后
在SO的帮助下,我能够从电子邮件主题行中提取“关键字”以用作类别。现在我决定允许每张图片有多个类别,但似乎无法正确表达我的问题以得到Google的良好回应。preg_match在列表中的第一个单词处停止。我确定这与“渴望”或只是用其他东西替换管道符号|有关,但我就是看不到它。\b(?:amsterdam|paris|zurich|munich|frankfurt|bulle)\b.我目前使用的整个字符串是:preg_match("/\b(?:amsterdam|paris|zurich|munich|frankfurt|bulle)\b/i","..$subject.".",$matc
我需要在字符串中找到特定的文本部分。该文本需要:12个字符(仅限字母和数字)整个字符串必须至少包含3位数字3*4个带空格的字符(例如K9X66GM6LM11)上述示例中的每个block必须至少包含1个数字像this这样的词,line,spod不应该被认可所以我以这段代码结束:preg_match_all("/(?但它不适用于所有要求。我当然可以用preg_repace或str_replace并删除所有(!,?,#)并在循环中计数数字(如果有4个或更多)但我想知道是否可以使用preg_match_all...这里是要搜索的字符串:?K9X66GM6LM11//notrecognized-
当我查看我的本地主机页面时,我有这个HTML行Test我要删除几乎所有preg都替换了之间的所有内容和>一事无成,因为我会拿出最后用字符串替换,我不能用字符串替换类,因为其中的href总是不同的。我试过了$outputstr=preg_replace('/]*>.*?/','',$outputstr);但是,当然,我的整行都消失了,因为它删除了之间的所有内容至我只需要没有类标签的内容。谁能给我指出正确的方向?我试过$outputstr=str_replace('','',$outputstr);拿出我最后一个然后$outputstr=preg_replace('/]*.*?\/>/',
我不擅长正则表达式,所以我什至不知道这个到底是做什么的:echopreg_match('/^(([a-zA-Z0-9\x2d]{1,63}\x2e)*[a-zA-Z0-9\x2d]{1,63}){1,254}$/','example12345678.com>');我从旧版本的ZendFramework-1.5中获取它,它已经过时并且在框架的最后一个稳定版本中不再显示此正则表达式。然而,它的行为很奇怪,因为我在官方php资源中没有找到文档解释或向后不兼容说明。问题是在php5.2.*上它工作正常:返回0。在php5.3.10、5.4.0(最有可能是5.3.、5.4.我想)它返回FALSE
我写了正则表达式^(?:([1-5])|([1-5]).*|.*([1-5])|.*([1-5]).*)$以匹配独立数字1-5,或由至少一个空格分隔的数字构成字符串的其余部分。我已经在在线服务中对其进行了测试,结果就是数字本身。但是,使用代码时preg_match('/^(?:([1-5])|([1-5]).*|.*([1-5])|.*([1-5]).*)$/','order123141245',$matches);我明白了:Array([0]=>order123141245[1]=>[2]=>[3]=>5)[0]元素是一个很好的完全匹配。我预计[1]元素为5但它是空的,并且还有另一个