草庐IT

PHP 7 正则表达式的工作方式与 5 不同

所以我必须使用php7并且我有以下正则表达式,它在5.5和5.6中工作得很好。([\\'\\\"].*[\\'\\\"])([\\s]*[\\s]*=>[\\s]*[\\s])(\\[([^\\[\\]]|(?R))*[\\s]*[\\s]\\])/m当我在5的任何版本中使用preg_match_all运行它时,我得到了正确的结果。基本上我试图匹配表单文本文件中的数组'key'=>['val1=>'sdsd','val2'=>'3e3',]上面的表达式选择了这个数组。在PHP7(7.0.8和7.0.9)中,永远不会返回任何匹配项。有人知道为什么以及更好的是我们如何将表达式移植到7吗?编

php - 我怎样才能匹配\n\r 与 php 中的 preg_replace

我想删除html中的空段落:使用/\n\r/不能匹配这个使用时/.{0,2}/有效,为什么? 最佳答案 当你需要换行时,\r(return)出现在\n(new)之前,所以在你的表达式中你应该使用\r\n. 关于php-我怎样才能匹配\n\r与php中的preg_replace,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/40327041/

PHP 正则表达式 : matching a word or sentence inside a html <p> BUT NOT inside <div> <img> <a> tags

我正在尝试匹配和替换html文档中的大约100个单词,为每个单词创建链接。出于性能原因,我认为DOM操作会比preg_replace慢。问题是我希望能够匹配(和替换)简单的单词(或句子)INSIDEtagsBUTNOTinsideanyothertagnor.我正在使用这个正则表达式来匹配单词“sapien”:/(]*>)(.*)(?!]+>[^]+)(?!=\"[\w]*)(\bsapien\b)(?![^]+)(?![^\w]*\")(.*)()/imU这是我应用它的文本:Crascursusconsequatnibhsapienacvehicula.Sederatsapien,c

php - 正则表达式 - 如何用逗号分割字符串,省略括号中的逗号

我有一个字符串,说:$str="myTemplate,testArr=>[1868,1869,1870],testInteger=>3,testString=>'test,cancontainacomma'"它基本上表示我需要解析的以逗号分隔的参数列表。我需要用逗号在PHP中(可能使用preg_match_all)拆分这个字符串(但省略括号和引号中的那些)所以最终结果将是以下四个匹配项的数组:myTemplatetestArr=>[1868,1869,1870]testInteger=>3testString=>'test,cancontainacomma'问题出在数组和字符串值上。因

php - 仅从数组键的开头删除潜在字符

使用php...我有一个数组(多维的,尽管在这个例子中我只担心顶层),其中的键是采用各种形式的字符串。键的例子是;弗雷德·史密斯约翰·保罗博士博士玛丽艾伦比尔司机我需要一个函数来删除'Dr','Dr','Dr','Dr.'仅从找到它们的任何键的开头开始。我目前正在使用这个...functionfixArrayKey(&$arr){$arr=array_combine(array_map(function($str){returnstr_replace(array('Dr.','Dr.','Dr','Dr'),'',$str);},array_keys($arr)),array_valu

t.me 链接的 php 正则表达式

我需要一个正则表达式php代码来检测如下链接:t.me/joinchat/AAAAAEEYZxAYyxhdag6z6g我试过了:$String=preg_replace("/[t.me][a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/","",$String);我需要使用preg_replace但上面的代码不起作用:(我该怎么办? 最佳答案 根据您的链接结构,此正则表达式可能有效:t\.me\/[-a-zA-Z0-9.]+(\/\S*)?演示:https://regex101.com/r/wEvuBu

php - 在 preg_match_all() 中需要一些关于正则表达式的帮助

所以我需要从字符串中提取票号“Ticket#999999”。我该如何使用正则表达式来执行此操作。如果我在Ticket#9999中有多个号码,我当前的正则表达式可以正常工作。但是如果我只有Ticket#9,它就不起作用了,请帮忙。当前正则表达式。preg_match_all('/(Ticket#[0-9])\w\d+/i',$data,$matches);谢谢。 最佳答案 在您的模式中,[0-9]匹配1个数字,\w匹配另一个数字,\d+匹配1+个数字,因此#后需要3位数字。使用preg_match_all('/Ticket#([0-9

php - 正则表达式在字符串中查找特定单词

好吧,我一直在搜索和测试,但我不知道如何执行以下操作:我有这段文字:*Intro*|[C]–[G]–[Am]–[F]–[Dm]–[G]*VERSE1*=[C][G][Am]=cu{a}ntoheesp{e}radoestemo{m}ento|[F]–[F]–[Dm]–[F]–[Dm]–[G]我需要找到[]中的所有单词,但只能从以“|”开头的行中找到我知道使用:^\|.*将从头到尾查找行,并使用:\[(.*?)\]将选择所有括号及其内容但我不知道怎么说找到这个^\|.*并在结果中应用这个\[(.*?)\]为什么不一步一步来?因为我想使用preg_replace来用HTML标签包裹这个词。

php - 正则表达式:提取并匹配两个字符之间的特定单词

我需要从字符串中提取匹配(way、road、str和street)前后每个单词的单词,直到前面的逗号“,”字符或数字。示例字符串:1.YeetRoad,OffMandyPlantWay,MandoGRA.2.3A,SleekDrive,OffTrembleRakeStreet。3.57RadishSlistRoadIkoyi结果应尽可能接近:怡路曼迪普兰特路TrembleRake街RadishSlistRoadIkoyi根据一些堆栈答案,这是我目前拥有的:(?如有任何帮助,我们将不胜感激。 最佳答案 您可以尝试这样的操作(使用ign

php:如何使用掩码正则表达式交换字母

在以辅音簇或辅音开头的单词中,我需要使用正则表达式将辅音(簇)放在单词的末尾。例如:bbber->er-bbb,bert->ert-b,avokado->avokado//ifwordbeginswithconsonantletterif(preg_match("/\b[b-df-hj-np-tv-xz]/i",$word)){returnpreg_replace(??????);} 最佳答案 你可以使用preg_replace:$repl=preg_replace('/^([b-df-hj-np-tv-xz]+)([a-z]+)$