草庐IT

preg-match

全部标签

php - Preg_match 从文本中排除单词

我有字符串:FirstWordword2word3wrongWordword4lastWord想要选择以FirstWord开头,以lastWord结尾且不包含wrongWord的字符串。对于第一个也是最后一个,我有:/firstword(.*?)lastword/i但排除wrongword无效。尝试过:/firstword(^wrongWord*?)lastword/i/firstword^((?!wrongWord).)*lastword/i还有更多类似的东西,但没有任何效果。 最佳答案 简单的以下内容有什么问题?/^firstw

php - 约会的 Preg_match

我正在尝试使用preg_match在PHP中匹配一个日期,拆分它并将它的一部分分配给一个数组,日期看起来像“20100930”,这是我正在使用的代码://Makethetor_fromdatelooknicer$nice_from=$_POST['tor_from'];$matches=array();$ideal_from='';preg_match('/\d{4}\\d{2}\\d{2}\/',$nice_from,$matches,PREG_OFFSET_CAPTURE,0);//if(isset($matches[0]))$nice_from=$matches[0];echo$

php preg_match 验证价格格式

我想验证我表单中的数字字段(价格)。我尝试以这种方式验证像10.00这样的格式,没问题。$pattern='/^\d+(:?[.]\d{2})$/';if(preg_match($pattern,$_POST['price'])=='0'){echo"ERROR";exit;}现在我想同时验证字段格式,例如10.00和10。我怎么能这样做? 最佳答案 你的新模式:$pattern='/^\d+(\.\d{2})?$/';将验证:1010.00如果您想使以零开头的数字无效,例如05.00,以下模式会有所帮助:$pattern='/^(

php - 为什么 preg_match_all 返回两个匹配项?

我正在尝试使用preg_match_all来确定一个字符串是否在双引号之间有任何单词,但是它是重复的结果,第一个结果的两边都有两组双引号,其中作为被搜索的字符串只有一套。这是我的代码:$str='Teststart."Testmatchthis".Testend.';$groups=array();preg_match_all('/"([^"]+)"/',$str,$groups);var_dump($groups);然后vardump产生:array(2){[0]=>array(1){[0]=>string(17)""Testmatchthis""}[1]=>array(1){[0]

PHP preg_split : Split string by forward slash

我想使用PHP函数preg_split通过正斜杠拆分我的字符串192.168.1.1/24.我的变量:$ip_address="192.168.1.1/24";我试过了:preg_split("/\//",$ip_address);//Andpreg_split("/[/]/",$ip_address);Errormessage:preg_split():Delimitermustnotbealphanumericorbackslash我在stackoverflow中找到了以下答案Phppreg_splitforforwardslash?,但它没有提供直接的答案。

PHP 的 preg_match() 只返回匹配值

我正在做以下事情:$text='L\'utente_{nickname}tihainvitatoagiocare';$text_vars=preg_match('#\_{(.*?)\}#',$text,$matches);返回:Array([0]=>_{nickname}[1]=>nickname)如何才能只返回以下内容?Array([0]=>nickname) 最佳答案 来自preg_match()文档:Ifmatchesisprovided,thenitisfilledwiththeresultsofsearch.$matche

php - 如何在包含冒号的php中获取单词(:)?

我有一个词你好你好吗:chinu我是:good我想得到包含:的词,比如:chinu和:good我的代码:上面的代码我得到了Array([0]=>:[1]=>)但没有得到确切的文本。请帮助我。谢谢下巴 最佳答案 要获得所有匹配项,您需要使用preg_match_all().就您的正则表达式而言,您的否定类是倒退的;匹配以下任意字符::、^“零次或多次”,并且不会匹配您的预期。您在评论中提到“记录”被打印两次,这是因为您打印了$matches数组本身,而不是打印仅显示的组index比赛结果。preg_match_all('/:\S+/'

php - 从文本中提取 4 位数字

preg_match_all('/([\d]+)/',$text,$matches);foreach($matchesas$match){if(length($match)==4){return$match;}}我想使用preg_match_all只提取四位数字?如果我想获得四位数或两位数?(第二种情况) 最佳答案 使用preg_match_all('/(\d{4})/',$text,$matches);return$matches;如果你只有\d,则无需使用字符类顺便说一句(我省略了方括号)。如果要匹配4位或2位数字,请使用pre

PHP 反向 Preg_match

这个问题在这里已经有了答案:Regularexpressiontomatchalinethatdoesn'tcontainaword(33个答案)关闭4年前。if(preg_match("/".$filter."/i",$node)){echo$node;}这段代码过滤一个变量来决定是否显示它。$filter的一个示例条目是“office”或“164(.*)976”。想知道有没有简单的说法:如果$filter在$node中不匹配。以正则表达式的形式?所以...不是“if(!preg_match”,而是$filter=“!office”或“!164(.*)976”,但它有效吗?

php - 正则表达式 : Match 1 to 60 or all

我需要一些关于php(Symfony)中的正则表达式的帮助。我想匹配值1到60或全部字符串。对于数字,我使用了这个:^([1-5]?[0-9]|60)但它匹配0...而我不要现在怎么能匹配“全部”。你能帮帮我吗?非常感谢之前 最佳答案 您应该能够将其分为以下几种可能性:^([1-9]|[1-5][0-9]|60|all)$这给了你四种可能性:[1-9]个位数的值。[1-5][0-9]:从十到五十九的所有内容。60:六十。all:您的“全部”选项。但请记住,正则表达式并不总是所有问题的答案。有时它们对于复杂的值检查不太有用(尽管在这种