我有这样的字符串;"String{tag_0}text{tag_2}and{tag_1}"现在我需要用数组中的元素替换所有{tag_INDEX}$myArray=array('a','b','c');所以替换后它应该是这样的:"Stringatextcandb"最好的方法是什么?我正在尝试使用preg_replace和preg_replace_callback但没有任何好的结果 最佳答案 $newStr=preg_replace('/{tag_(\d+)}/e','$myArray[\1]',$str);
我正在尝试在code.google.com上使用NameCase一个php类.当我运行它时,我收到此通知,但我不明白为什么。PHPNotice:UseofundefinedconstantMc-assumed'Mc'innamecase.php(54):regexpcodeonline153if(preg_match('/\bMac[A-Za-z]{2,}[^aciozj]\b/',$str)||preg_match('/\bMc/',$str)){54$str=preg_replace("/\b(Ma?c)([A-Za-z]+)/e","$1.ucfirst('\\2')",$str
我有一个生成包含特定标记的内容的脚本,我需要用单独循环产生的不同内容替换每次出现的标记。使用str_replace将所有出现的标记替换为相同的内容很简单,但我需要用循环的下一个结果替换每次出现的标记。我确实看到了这个答案:Searchandreplacemultiplevalueswithmultiple/differentvaluesinPHP5?但是它是根据我没有的预定义数组工作的。示例内容:Thisisanexampleof%%token%%thatmightcontainmultipleinstancesofaparticular%%token%%,thatneedtoeach
我正在使用USAePay的[可怕的]PHP库连接到他们的网关,但我收到以下错误:Deprecated:Functionereg_replace()isdeprecatedin.../usaepay.phponline320这对应于以下行:$this->amount=ereg_replace("[^[:digit:].]","",$this->amount);所以,我想用preg_replace将其关闭。这是我的想法:$this->amount=ereg_replace("/[^[\d].]/","",$this->amount);这是否等同于上面的那个? 最
例如,如果我想preg_replace一个HTML元素的标题:$str=preg_replace('/title=\"([^\"]+)\"/','foo',$str);请不要为这个特定示例提供其他解决方案(非正则表达式),这只是一个示例。我需要一个适用于任何正则表达式的解决方案。 最佳答案 如果你想用preg_replace匹配部分,但只是部分替换其他东西,那么有两种选择。您可以重新插入匹配的部分(包含在捕获组中,然后使用$1和$3):$str=preg_replace('/(title=")([^"]+)(")/','$1foo$
我有以下问题:我有一个文本,例如以下格式:min:34.0max:79.0383lifetime:17%code:iweo7373333不是固定的textType,意思是min也可以是-7.94884444左右。我怎样才能提取零件,例如像这样的数组$result['min']=34.0;$result['max']=79.0383andsoon...我现在通过替换空格来做到这一点,然后将“min:”替换为空,“max:”、“lifetime:”……替换为“,”,然后爆炸……主要问题是有时其他变量介于最小值、最大值、...之间,因此位置不保持正确的值。另外-我认为-这不是一个很好的编码风
我想合并两个包含文件列表及其括号中的修订的数组。例如:第一个数组:['A[1]','B[2]','C[2]','D[2]']第二个:['B[3]','C[4]','E[4]','F[2]','G[2]']就像我说的,我可以合并两个数组,但是用字母/文件名冲突的第二个数组中存在的数据覆盖第一个数组。我使用这个正则表达式只抓取文件名(删除修订号)。我不知道我在这一点上是否正确:/\[[^\)]+\]/我正在寻找的结果是这样的,['A[1]','B[3]','C[4]','D[2]','E[4]','F[2]','G[2]']我目前正在使用PHP4。 最佳答案
我试过研究preg_replace,只是我对正则表达式没有太多经验。我想做的是替换一部分以冒号结尾的文本,并将其设为粗体,并在前面放一个换行符,在后面放两个换行符。IE转换此文本title1:issometexthere.title2:anotherpieceoftext.到**title1:**issometexthere.**title2:**anotherpieceoftext我试过做这样的事情......preg_replace("!\*(.*?)\*!$:","\\!\*(.*?)\*!\\",$text);我似乎无法让它工作。有人能帮忙吗?谢谢安迪
我从正则表达式中得到了一些意想不到的结果,这意味着要替换命名空间上的类名。替换似乎发生了两次,因此被替换的类名是重复的(请参见下面的示例)。我实际上已经通过更改正则表达式以匹配1个或多个(+)而不是0个或多个(*)来解决问题,这实际上更准确为了我想要的。但是,我对为什么一开始会遇到问题感到有点困惑。这是问题的一个例子:$classns='components\groups\GroupsController';$newclass='GroupsAccess';$classns=preg_replace('/[^\\\\]*$/',$newclass,$classns);echo$clas
这些正则表达式快要死了,无论我读什么我都无法理解这个概念。这是我的问题,我相信它非常容易解决。[img:http://example.com/_data/025_img.jpg]我想要的只是用更改[img:...]的位标记并得到如下结果我尝试了各种愚蠢的变体,但都没有用。不过,我对此并不感到惊讶。编辑附加信息:我的情况如下。用户将图片上传到他们的个人资料图像名称存储在数据库中。它们列在带有文本区域的表单旁边在键入文本时,我想通过添加以下标签[img:...]向用户提供他们的一张或多张图片,其中...是点击图片时将被复制的链接从用户图库中列出。我正在使用Codeigniter并将文本区域