我需要转换$text='Wehadfun.LookatthisphotoofJoe';[编辑]文本中可以有多个链接。到$text='Wehadfun.Lookatthisphoto(http://example.com)ofJoe';所有HTML标签都将被删除,href值来自需要像上面一样添加标签。用正则表达式解决这个问题的有效方法是什么?任何代码片段都会很棒。 最佳答案 首先做一个preg_replace来保持链接。你可以使用:preg_replace('(.*?)','$\2($\1)',$str);然后使用strip_tags
这是我要执行匹配的HTML字符串类型:+12SpellPowerand+10HitRating我想得到+12SpellPowerand+10HitRating从上面的HTML中。这是我写的代码:preg_match('/(.*)/',$gem,$match);但是由于它正在逃避/在所以它不会停止比赛,所以我得到的数据比我想要的多得多。我怎样才能逃脱/在同时仍将其作为模式的一部分?谢谢。 最佳答案 我认为你的正则表达式得到的比你想要的多的原因是因为*是贪婪的,尽可能多地匹配。相反,使用*?,它将尽可能少地匹配:preg_match('
我正在为我的CodeIgniter应用程序处理一些路由,我需要声明一个“包罗万象”/除了一个正则表达式。任何不以“ajax/”开头的路由都应重定向到“main”路由器。像这样:$route['regexmagichere']="main";所以这绝对超出了我的正则表达式技能范围,我需要一些帮助。正则表达式应在所有不以“ajax/”开头的字符串上返回true,如下所示:$string_one="ajax/someotherstuffhere";$string_two="ajax/test";$string_three="somestuffhere";此处$string_one将是唯一返回
我的正则表达式不适用于个位数/^[0-9]{1,7}\.?[0-9]{1,2}$/我需要它来处理无符号数:1(singledigitnumbers,withoutfractions)-currentlyitfailsonthem1.0;0.31(floatingpointnumbers)小数前的数字可以是1-7位;在小数1-2位数之后。谢谢! 最佳答案 您指定必须有1-7位数字,然后是可选的小数点,然后是1-2位数字。尝试:/^[0-9]{1,7}(?:\.[0-9]{1,2})?$/请注意,这不允许尾随小数位(即“1.”)。如果你
你好我正在用php做一个解析器正如您在下面看到的那样,它发生了转变*this*_this_到像thisthis这样的东西$db['profile']['information']=str_replace("\n","",$db['profile']['information']);$db['profile']['information']=preg_replace('/\*([^\*]+)\*/','\1',$db['profile']['information']);$db['profile']['information']=preg_replace('/_([^[_]+)_/','
我需要一个可以替换小写字母n的正则表达式带有换行符,但仅当其后跟数字0-9时或大写字母。例如字符串:CompanyBuildingn100ProspectWay应该转换成:CompanyBuilding100ProspectWay我正在尝试用PHP清理这些数据,因此生成的表达式需要兼容。 最佳答案 试试这个:n(?=[\dA-Z])在PHP中(workingexample):$str=preg_replace("/n(?=[\dA-Z])/","\n",$str);(?=...)是一个积极的先行-它检查我们匹配但不匹配的n之后的内容
我想从我的代码中删除任何额外的空格,我正在解析一个文档block。问题是我不想删除codegoeshere中的空格.例如,我用它来删除多余的空格:$string=preg_replace('/[]{2,}/','',$string);但我想在内保留空格此代码/字符串:ThisissometextThisisalsosometextUser::setup(array('key1'=>'value1','key2'=>'value1'));应该转化为:ThisissometextThisisalsosometextUser::setup(array('key1'=>'value1','ke
我已经在谷歌上查过这个问题的帮助,但所有的答案都忽略了替换方法中的一个致命缺陷。本质上我有一组表情符号,例如:)LocK:eek等等,需要用图像标签替换它们。我遇到的问题是识别一个特定的表情符号不是单词的一部分并且单独在一条线上。例如,在我们的网站上,我们允许“快速链接”,这些链接不包含在采用go:forum、user:Username等格式的笑脸替换中。我读过的几乎所有答案都不允许这种可能性,因此会破坏这些链接(即goorum)。我已经尝试用不同的方法来解决这个问题,以检查行的开头、空格/换行符等等,但我的运气并不好。如果您对此问题有任何帮助,我们将不胜感激。哦,我还在使用PHP5和
所以我有一个正则表达式代码来确保密码是4到13个字符,它总是失败publicfunctionvalid_password($password){if(preg_match('^.{3,14}^',$password)){returntrue;}//endifelse{returnfalse;}//endelse}我使用的是正则表达式而不是php的长度属性,因为稍后我将添加更多正则表达式代码。但是,现在我被这个失败的程序困住了。问题是,它确保密码超过3个字符,但它并不关心密码的长度,就好像我没有设置限制一样。提前致谢 最佳答案 您已使
我有以下字符串,我想从中提取“383-0408”,显然内容发生了变化,但部件号始终跟在字符串“OurStk#:”之后,我怎样才能最优雅地从中提取此信息字符串?MicrochipTechnologyInc.18PIN,7KBFLASH,256RAM,16I/OMfr'sPart#:PIC16F648A-I/SOOurStk#:383-0408 最佳答案 你可以这样做:仅当您要查找的数字部分始终采用digits-digits形式时才有效。@Richard86给出了一个更通用的解决方案,其中包含任意数量和任意数量的破折号,作为您问题的另一