草庐IT

string-matching

全部标签

php - 调整在电话号码上使用 Preg_Match()

我正在使用preg_match从一段文本中提取美国电话号码的各个部分。我已经可以提取号码了。但我想让match[0]只包含电话号码。问题:我的模式很接近,但我需要一些帮助来摆脱电话号码前的任何文本。如何去掉前面的字符串"Heymyphoneis"?PHP代码$pattern='/.*?(?:1(?:[.-])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'.'(?:(?输出Array([0]=>Heymyphoneis911-628-4539[1]=>911[2]=>628[3]=>4539) 最佳答案 只需删除

PHP preg_replace : How can I match something but not replace it?

例如,如果我想preg_replace一个HTML元素的标题:$str=preg_replace('/title=\"([^\"]+)\"/','foo',$str);请不要为这个特定示例提供其他解决方案(非正则表达式),这只是一个示例。我需要一个适用于任何正则表达式的解决方案。 最佳答案 如果你想用preg_replace匹配部分,但只是部分替换其他东西,那么有两种选择。您可以重新插入匹配的部分(包含在捕获组中,然后使用$1和$3):$str=preg_replace('/(title=")([^"]+)(")/','$1foo$

php - REGEX 获取注释标签之间的字符串 (/* string */)

我需要获取/**/注释标记之间的字符串。我正在尝试解析一个文件,并只获取其中注释标签之间的字符串。我是使用正则表达式的新手。所以任何建议将不胜感激。我已经尝试了一些,但都没有用。示例字符串将是。是的,在/*之后和*/之前有一个换行符/*CommentHereCommentHere*/ 最佳答案 你没有说你使用的是什么语言,但是这个正则表达式将适用于java(不需要转义/):(?s)/\*(.*?)\*/第1组(即\1)有您要查找的内容 关于php-REGEX获取注释标签之间的字符串(/*

php - preg_match 分隔符错误

美好的一天,我已经阅读了大约25篇不同的文章,讨论如何添加“/”或“~”等作为分隔符,但对这行代码无济于事。我尝试过的一切仍然给我一个定界符错误。任何帮助将不胜感激。感谢您的时间。以下是引起我所有研究的原始代码。$allowedHosts=array();//self$host=$_SERVER['HTTP_HOST'];if(preg_match('\d+\.\d+\.\d+\.\d+',$host)){$allowedHosts[]=$host;}else{$allowedHosts[]='*.'.$host;$allowedHosts[]=$host;}

php - preg_match 返回空数组

我总是使用preg_match它总是工作正常,但今天我试图在两个html标签之间获取内容DATA我有一个问题,我的代码对此进行了解释:functionfindThis($data){preg_match_all("/\(.*?)\/i",$data,$conditions);return$conditions;}//plaintext//workingfine$data1='Sometext...Some..TeThisisaphpcode';//Atextwithanewlines//Notworking..$data2='sometext..some..teThisisaphpco

php - 在换行符中使用 preg_match_all

我正在尝试使用preg_match_all从网站中获取特定部分的出现次数,我之前已经成功地做到了这一点,但现在的不同之处在于这些部分跨越换行符......因为我'我明白了,我应该可以用一些修饰符来做到这一点......所以相关网站上的部分结构是这样的:所以我正在尝试使用LICRabatGuideAftale获取所有事件并清除...我试过:preg_match_all("/LICRabatGuideAftale(.*)clear/s",$link_section,$link_array);但它似乎并没有将网站分成几个部分,而是只给了我数组中的1个条目... 最

"start of string or pattern"的 PHP 正则表达式

这个问题在这里已经有了答案:Regexlookahead,lookbehindandatomicgroups(5个答案)关闭9年前。有没有办法(除了进行两个单独的模式匹配)在PHP中使用preg_match来测试字符串或模式的开头?更具体地说,我经常发现自己想要测试我是否有一个匹配模式,它前面没有任何内容,如preg_match('/[^x]y/',$test)(也就是说,如果y前面没有x,则匹配它),但如果它出现在$test的开头,则也匹配y(当它前面也没有x,但前面没有任何字符,因此[^x]构造将不起作用,因为它始终需要一个字符来匹配它。在字符串末尾也有类似的问题,以确定是否出现了

php - `preg_match` 中的 p 代表什么?

这个问题在这里已经有了答案:WhatdoespregstandforinPHP'sfunctions?(1个回答)关闭9年前。在ruby中,有一个函数叫做gsub,其中g代表global,sub代表substitution。preg_match中的p是什么?我想reg是regular而match是真正的match。对吗?

PHP:从 Python 字典中获取字符串,例如 String

我有一个像这样的字符串:{"Url":"http://localhost","DBName":"John_db","DBUser":"admin","Pass":"a"}现在使用这个字符串,我需要URL、DBname、DBuser并将它们传递给单独的变量,例如:$DBName='John_db';$DBUser='admin';$Url='http://localhost';$Pass='a';我是PHP的新手,找不到任何解决方案来实现这个目标,有人可以帮助我吗? 最佳答案 您真的不需要将每个拆分成单独的变量。您可以将该JSON解码

php - preg_match 查找带或不带第一个大写字母的正则表达式

在我的项目中,我需要找到一个特殊的正则表达式,如果第一个字母是大写或小写,它就可以工作。以下是示例字符串:user=usernameUser=username现在,我试过这个正则表达式:'/[^\n]user[^\n]*/'但是如果第一个字母是大写,这个表达式就找不到任何东西,所以我的问题是:在这两种情况下,找到包含“user”的行的正确正则表达式是什么? 最佳答案 您可以使用以下正则表达式:$re="/^user.*$/mi";参见demoi选项表示“忽略大小写”,m表示“多行”,强制^和$匹配线边界。.将匹配除换行符以外的任何字