草庐IT

preg-match

全部标签

PHP Regex匹配最后一次出现的字符串

我的字符串是$text1='A373R12345'我想找到此字符串最后一次出现的非数字编号。所以我使用这个正则表达式^(.*)[^0-9]([^-]*)然后我得到了这个结果:1.A3732.12345但我的预期结果是:1.A373R(它有'R')2.12345另一个例子是$text1='A373R+12345'然后我得到了这个结果:1.A373R2.12345但我的预期结果是:1.A373R+(它有'+')2.12345我要包含最后一个无数字的数字!!请帮忙!!谢谢!! 最佳答案 $text1='A373R12345';preg_m

php - preg_replace 双重替换

我从正则表达式中得到了一些意想不到的结果,这意味着要替换命名空间上的类名。替换似乎发生了两次,因此被替换的类名是重复的(请参见下面的示例)。我实际上已经通过更改正则表达式以匹配1个或多个(+)而不是0个或多个(*)来解决问题,这实际上更准确为了我想要的。但是,我对为什么一开始会遇到问题感到有点困惑。这是问题的一个例子:$classns='components\groups\GroupsController';$newclass='GroupsAccess';$classns=preg_replace('/[^\\\\]*$/',$newclass,$classns);echo$clas

php - 使用 preg_replace 将字符串转换为 <img> 标签

这些正则表达式快要死了,无论我读什么我都无法理解这个概念。这是我的问题,我相信它非常容易解决。[img:http://example.com/_data/025_img.jpg]我想要的只是用更改[img:...]的位标记并得到如下结果我尝试了各种愚蠢的变体,但都没有用。不过,我对此并不感到惊讶。编辑附加信息:我的情况如下。用户将图片上传到他们的个人资料图像名称存储在数据库中。它们列在带有文本区域的表单旁边在键入文本时,我想通过添加以下标签[img:...]向用户提供他们的一张或多张图片,其中...是点击图片时将被复制的链接从用户图库中列出。我正在使用Codeigniter并将文本区域

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_split on quote,除非后面跟着另一个引号

我正在尝试使用分隔符捕获在引号字符(")上拆分UTF-8字符串,除非该引号后跟第二个引号(""),以便(例如)"A""B""C"&"D""E""F"将拆分为三个元素"A""B""C"&"D""E""F"我一直在尝试使用:$string='"A""B""C"&"D""E""F"';$temp=preg_split('/"[^"]/mui',$string,null,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);但没有像它给我的那样成功array(7){[0]=>string(2)"""[1]=>string(1)"""[2]=>string(

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

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

PHP 将圣经搜索字符串解析/分解为变量或标记

我需要帮助使用PHP将圣经搜索字符串分解为变量或标记。我想获得这篇文章中提供的解决方案的明确用法示例:PHPpreg_matchbiblescriptureformat.编辑:章节(从,到)是可选的。例如:我希望能够拆分以下任何字符串:'John14:16–17';//BookChapter:FromVerse-ToVerse'John14:16';//BookChapter:FromVerse'John14';//BookChapter'John';//BOOK以下内容:允许我获取nbook名称:Exodus。我也可以用同样的方式检索章节编号(echo$chapter),等等。我在使

php - preg_split 不删除搜索模式

我有数千个文本文件要解析,它是一个遵循特定模式的产品目录。它有两个序列号,其中一个我将整个文本拆分成一个数组,每个键一个产品。问题是我在preg_split中使用的序列号从产品中删除了,而我需要它。这是一个原始产品:1532.000028-01532.213.00010875-8TRESANÉIS,DOISPENDENTES,DOISBRINCOS,SENDOUMCOMTARRACHADEMETALNÃONOBRE,DE:OURO,OUROBRANCOBAIXO;CONTÉM:diamantes,pérolacultivada,pedra,massa;CONSTAM:amassada(

php - preg_replace 只显示数字和破折号

我有这个字符串:Height(cm):200-250(cm)我只想显示数字和破折号,所以剩下的字符串将是:200-250这是我的尝试,但如何包含破折号?$item_data=preg_replace("/[^0-9]/",'',$item_data); 最佳答案 这应该适合你:只需添加破折号和空格即可。也不要忘记trim()字符串以去除值开头和结尾的空格。$str="Height(cm):200-250(cm)";echo$item_data=trim(preg_replace("/[^0-9-]/",'',$str));输出:20