为了与php5.3兼容,从split更改为preg_split后,我从php收到此警告:PHPWarning:preg_split():DelimitermustnotbealphanumericorbackslashPHP代码是:$statements=preg_split("\\s*;\\s*",$content);如何修复正则表达式不再使用\谢谢! 最佳答案 这个错误是因为你的正则表达式需要一个分隔符。$statements=preg_split("/\s*;\s*/",$content);
我正在尝试使用来自preg_match:checkbirthdayformat(dd/mm/yyyy)的修改后的preg格式匹配信用卡到期日期(yyyy-MM格式)if(!preg_match('/([0-9]{4})\-([0-9]{2})/',$expirationDate,$matches)){thrownewServices_Payment_Exception('Cardexpirationdateisinvalid');}出于某种原因,它还会验证无效值,例如20111-02(无效年份)。我在这里做错了什么?我想确认年份是4位,月份是2位(01,02..12)
我正在逐行搜索文本,想查看该行是否包含短语“查看详细信息”并且不区分大小写,因此会发现:查看详细信息,查看详细信息,查看详细信息等到目前为止我有这个。if(preg_match("/^(\seedetails)/",strtolower($line))){echo'SEEDETAILSFOUND';}一个简单的例子会很有帮助,谢谢。 最佳答案 如果要检查字符串中是否存在子字符串,则不需要正则表达式:stripos()会做的很好:if(stripos(strtolower($line),'seedetails')!==false){/
我是一名Ruby专家,试图用PHP实现我的一些代码,但无法为这个特定的定义获得等效的PHP代码。任何人都可以帮助我。提前致谢。defcheck_condition(str)str=~SOME_REGEXend 最佳答案 在PHP中它看起来像:functioncheck_condition($str){returnpreg_match(SOME_REGEX,$str);}不幸的是,与其他一些语言不同,PHP中没有正则表达式匹配运算符。你必须调用一个函数。按照preg_match()的手册进行操作以及关于所谓perlcompatible
我正在构建一个新的网络应用程序,LAMP环境...我想知道是否可以信任preg_match用于所有基于文本的字段(也不是HTML字段)的用户输入验证(当然是+准备好的stmt;电话、姓名、姓氏等)。例如,对于经典的“电子邮件字段”,如果我检查如下输入:$email_pattern="/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)"."|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}"."|[0-9]{1,3})(\]?)$/";$email=$_POST['email'];if(p
我希望在PHP中像这样声明:if(preg_match("/apples/",$ref1,$matches))或if(preg_match("/oranges/",$ref1,$matches)){然后做点什么上面的每一个单独工作都很好,但我不知道如何做到,如果其中任何一个为真,那么执行我在它下面的功能。 最佳答案 使用|选择一个值或另一个。您可以多次使用它。preg_match("/(apples|oranges|bananas)/",$ref1,$matches)编辑:这篇文章让我很饿。
这是一个非常基本的问题,但我需要专家的建议,所以才将其张贴在这里。这里有两个函数,两者有什么区别?它们是否同样高效并包括最佳实践或它们中的哪一个更适合用于编程。functionis_numeric($number){if(!preg_match("/^[0-9]+$/",$number))returnfalse;returntrue;}functionis_numeric($number){if(preg_match("/^[0-9]+$/",$number))returntrue;elsereturnfalse;} 最佳答案 一些
我正在编写一段播放歌曲标签的小代码,但我遇到了一个问题。我需要解析每首歌曲的标签行并将其拆分,一方面获取和弦block,另一方面获取单词。每个block都像:$line_chunk=array(0=>//partoflinecontainingoneorseveralchords1=>//partoflinecontainingwords);他们应该保持“分组”。我的意思是,只有当函数达到和弦和单词之间的“极限”时,它才应该拆分。我想我应该使用preg_split来实现这一点。我做了一些测试,但我只能拆分和弦,而不是和弦的“组”:$line_chunks=preg_split('/(\
我试图在PHP中使用preg_match验证输入字符串仅包含“a-z、A-Z、-、_、0-9”字符。如果它仅包含这些,则进行验证。我试图在谷歌上搜索,但找不到任何有用的东西。有人可以帮忙吗?谢谢! 最佳答案 如果空字符串也有效,请使用模式'/^[A-Za-z0-9_-]*$/'。否则'/^[A-Za-z0-9_-]+$/'所以:$yourString="blahblah";if(preg_match('/^[A-Za-z0-9_-]*$/',$yourString)){#yourstringisgood}此外,请注意,您希望在字符类
我不太擅长找到正确的正则表达式自动化来生成不同的表达式,但是当涉及到用PHP编写脚本时,这让我很头疼。我无法证明自己能够在preg_match中编写一个“适合”表达式的模式,例如:123-23-345...123-34-456....12-234-56.....它应该是3组数字,其中每组,individualy是从左到右排序的,并且每个下一组的数字都不比前一组的最大数字大。这:123-23-456是错误的,因为23中的2小于123中的3。123-43-45又是错误的,因为43应该是34...这应该可以帮助我验证可能只有该类型内容的字段。它应该是一个正则表达式验证,而不是一个用于解析、拆