草庐IT

php - ereg 的预期生命周期,迁移到 preg

这个问题在这里已经有了答案:HowcanIconverteregexpressionstopreginPHP?(4个答案)关闭3年前。我开发了一个大型PHP应用程序(>100万行,已有10年历史),它广泛使用了ereg和ereg_replace-目前516中有1,768个独特的正则表达式类。我很清楚为什么ereg被弃用,但显然迁移到preg可能涉及很多。有谁知道ereg支持在PHP中可能会维持多长时间,和/或有任何关于在这种规模上迁移到preg的建议。我怀疑从ereg到preg的自动翻译是不可能/不切实际的?

php - preg_match 多个IP?

我正在使用preg_match来匹配引用url和IPblock。我如何告诉我的代码查找推荐,然后如果它匹配检查多个IPblock?即:70.x.x.x或96.x.x.x到目前为止,这是我的代码(适用于一个IPblock“70.x.x.x”)";}?>我知道这是一个简单的问题,今天只是放了一个脑袋。 最佳答案 您可以使用正则表达式的“替代”语法实现这一点,它基本上是一个OR运算符。您还需要使用“^”将表达式锚定到字符串的开头,这将确保您匹配IP的第一个八位字节,并使用反斜杠来转义点,这是正则表达式中的通配符。此代码段应该适合您:";}

php - 将文本链接替换为带有 preg_replace 的链接

我似乎在用指向已发布网站的链接替换文本链接时遇到问题,它不是链接。代码:$status_text=preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()\s]+)#i','\\1\\3',$status_text);echo$status_text;$status_text是从名为contents的MySQL字段中提取的,并包含其他文本,但我只想链接链接。此外,我还希望它不显示完整的URL,只显示主域。更新:我们在同一页面上有另外两个preg_replaces,寻找在它们前面带有+和#的链接到网站区域的东西,它们目前可以

PHP: preg_match - "Delimiter must not be alphanumeric or backslash"

这个问题在这里已经有了答案:PHPusingpreg_replace:"Delimitermustnotbealphanumericorbackslash"error(5个答案)关闭7年前。有人知道这个正则表达式有什么问题吗?它在RegexPal和RegExr等网站上运行良好,但在PHP中它给了我这个警告但没有结果:Warning:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash这是我的代码:preg_match('name="dsh"id="dsh"value="(.*?)"','n

php - 为什么 preg_match 不起作用?

自从“ereg”贬值后,我就开始使用“preg_match”。不幸的是,在我的代码中,它不接受我的有效电子邮件地址。我确信我正在使用的这个正则表达式正在工作,但我正在寻找的是执行此功能的替代方法或指出我做错了什么。这是我的功能:functionvalidate($email){$regex="^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([

php - 通过 "preg_match_all"函数特殊字符获取html内容时显示不正常,如何解决?

我正在使用下面的代码获取html内容,preg_match_all('/(.*?)/s',$str,$matches);echo$matches[1][0];内容已正确获取,但一些特殊字符和文本无法正常显示“responsetowhat?”显示为“responsetowhat?”butitdoesn't显示为但没关系。一些空白显示为如何解决这个问题..? 最佳答案 您有unicode问题,请尝试将其添加为脚本的第一行:header('Content-Type:text/html;charset=utf-8');

php - 似乎无法将精确字符串与 Preg_replace 匹配

我正在尝试使用php中的preg_replace函数来精确匹配字符串。我只想匹配具有单个“@”符号的实例。我还需要一个变量作为模式传入。$x="@hello,@@hello,@hello,@@hello"$temp='@hello'$x=preg_replace("/".$temp."/","replaced",$x);结果应该是:$x="replaced,@@hello,replaced,@@hello"提前谢谢你。 最佳答案 添加负数look-behind(?如果$temp匹配失败前面是@(或者,简单来说,如果@之前有一个@he

PHP preg_grep 反向匹配模式

我构建了一个简单的代码来解析几个磁盘中的所有音乐文件夹并将列表放入一个数组中。当文件夹名称是类别时,文件夹名称以多个空格开头,当它们是“最终文件夹”时,文件夹名称以单个空格开头。例如。看到这个结构:[0]=>/Volumes/SAMPLES/VOCALS/[1]=>/Volumes/SAMPLES/VOCALS/AFRICA/[2]=>/Volumes/SAMPLES/VOCALS/AcmeIncClubVocals/[3]=>/Volumes/SAMPLES/VOCALS/AtomicIncDanceVocals/[4]=>/Volumes/SAMPLES/VOCALS/AFRICA

PHP preg_match_all,检查和爆炸

我想检查'n'分解这个字符串:{$gallery#pager/collectionName/imageName/manual/no_effect/foo1/foo2/.../fooN}到:var_name[0]=>'gallery',modul_name[0]=>'pager',3[0]=>'collectionName',4[0]=>'imageName',5[0]=>'manual'...N[0]=>'fooN'我制作了以下正则表达式:/{\$(?P[^#]+)#(?P[^\/]+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)

php - preg_match_all() 如何处理字符串?

我仍然在学习很多关于PHP的知识,字符串更改是我感兴趣的东西。我之前使用过preg_match来验证电子邮件地址或只是搜索查询。我刚从这篇文章中来What'swronginmyregularexpression?并且很好奇为什么preg_match_all函数会产生2个字符串,其中1个带有一些字符被剥离,另一个带有所需的输出。根据我对函数的理解,它使用RegEx逐个字符地遍历字符串,以评估如何处理它。这个正则表达式的结构是否可以绕过第一个数组条目并只产生所需的结果?这样你就不必去其他线程了$str='text^name1^Jony~text^secondname1^Smith~text