我知道如果$stringabc包含除数字以外的任何内容,我当前使用的一个条件是:if(preg_match("/[^0-9]/",$stringabc))我想要一个if条件,如果$stringdef包含除字母、空格和破折号(-)以外的任何内容,它会给出错误。 最佳答案 那就是:if(preg_match('/[^a-z\s-]/i',$stringabc))“除字母(a-z)、空格(\s,表示任何类型的空格)和破折号(-)之外的任何内容”。也允许数字:if(preg_match('/[^0-9a-z\s-]/i',$stringab
尽管我对伪代码中的正则表达式有足够的了解,但是我仍然无法翻译我想在phpregexperl中执行的操作。我正在尝试使用preg_match提取表达式的一部分。我有以下字符串${classA.methodA.methodB(classB.methodC(classB.methodD)))},我需要做2件事:一种。验证语法${classA.methodA.methodB(classB.methodC(classB.methodD)))}有效${classA.methodA.methodB}有效${classA.methodA.methodB()}无效${methodB(methodC(cl
我试图从这个数组中获取信息,但出于某种原因,它将所有内容嵌套到$matches[0]中。这是否按预期工作?有没有办法将其放入深度为1的数组中?编辑:这是正则表达式:([A-Z][a-z]+\s){1,5}\s?[^a-zA-Z\d\s:,.\'\"]\s?[A-Za-z+\W]+\s[\d]{1,2}\s[A-Z][a-z]+\s[\d]{4} 最佳答案 preg_match_all()总是返回一个数组(如果成功,否则你会得到一个空数组),其中索引0包含一个数组,每个完整匹配都有一个元素,并且其他索引成为捕获组,每个匹配项都有一个内
我目前正在创建一个由来自mysql查询的值组成的排序方法。下面是数组的简要View:Array([0]=>Array(['id']=1;['countries']='EN,CH,SP';)[1]=>Array(['id']=2;['countries']='GE,SP,SV';))我已经成功地根据数字id值进行了正常的usort,但我更想根据“国家”字段的内容对数组进行排序(如果它包含一个设置字符串,在这种情况下是国家代码),然后是id字段。下面的片段是我的第一个想法,但我不知道如何将它合并到一个工作函数中:in_array('EN',explode(",",$a['countries
我使用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个字符之间。
我在一个字符串中有5个希腊字符。在php中使用substr后,输出类似于α�。应该是αβγ。关于编码有什么建议吗?我试过了header('内容类型:text/html;charset=utf-8');没有结果。";?> 最佳答案 $thedoc=mb_substr($string,0,3,'UTF-8');您需要使用mb_substr而不是substr,并且您需要将在此上下文中使用的PHP的内部编码设置为UTF-8。substr函数基于一种简单的字符模型,其中每个字符都是一个8位字节。仅使用substr($string,0,3),您
这个问题在这里已经有了答案:PHPregularexpressions:Noendingdelimiter'^'foundin(2个答案)关闭9年前。警告:preg_match():在第29行的.../functions/validations.php中找不到结束分隔符“^”代码:if(preg_match($mail_pat,$email,$components)){我应该在什么地方进行编辑?
在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-
我不擅长正则表达式,所以我什至不知道这个到底是做什么的: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