草庐IT

替换字符串中的 PHP preg_quote

我使用preg_replace并且我想在替换字符串中包含一个url。我如何引用该字符串?看来preg_quote仅适用于搜索模式。$replace='\1'.addslashes($url).'\3'.addslashes($title).'\4'; 最佳答案 需要逃避addslashes是不够的preg_quote转义太多参见thisdemo.正如Mario评论的那样,您可以使用addcslashes($str,"\\$")。 关于替换字符串中的PHPpreg_quote,我们在Sta

php preg_split 忽略特定字符串中的逗号

我需要一些帮助。我想要的是忽略特定字符串中的逗号。这是一个逗号分隔的文件csv,但名称有一个逗号,我需要忽略它。我得到的是结果是$result(phpcode):'hypertextlanguage',1=>'programming',2=>'Amazon',3=>'Inc.',4=>'100',);?>我想要的结果是$result(phpcode):'hypertextlanguage',1=>'programming',2=>'Amazon,Inc.',3=>'100',);?>感谢您的帮助:) 最佳答案 请注意[\W,\s]=

PHP 正则表达式,preg_replace_callback,在 1 个字符串中有 2 个可能的匹配失败

我正在研究这个非常基础的类(class),以了解有关正则表达式的更多信息。我想要实现的是从testview文件中抓取内容,抓取恰好在{{EACHslides}}和{{#EACH}}之间的字符串。现在出现在类中的正则表达式就是这样做的,加上开始标记中的变量名。然后我想使用该字符串与正确的变量一起循环并将其放回原处。但是当我在我的View中使用2个EACH循环而不是1个时,它会严重失败。preg_replace_callback()将匹配第二个循环的第一个开始标记和最后一个结束标记,并给出如下字符串:"htmlbalalbal{{#EACH}}morehtmlblabla{{EACHnew

php - 警告 : preg_match() [function. 预匹配]:未知修饰符 'v'

我在我的wordpress博客中关于同一行代码不断收到此错误约20次。这是不断出现错误的代码行。if(preg_match('/'.$id_base.'-([0-9]+)$/',$widget_id,$matches))$number=max($number,$matches[1]);有什么问题吗? 最佳答案 如果字符串$id_base中有/,您的正则表达式将中断,因为您使用/作为正则表达式分隔符。要解决此问题,请在$id_base上使用preg_quote作为:if(preg_match('/'.preg_quote($id_ba

php - 更改函数以使用 preg_replace() 而不是 ereg_replace

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:replaceereg_replacewithpreg_replace我在代码库中获得了以下函数,该函数采用字符串并使链接处于事件状态。我注意到ereg_replace()已折旧。我将如何更改它以使用preg_replace?functionmakeActiveLink($originalString){$newString=ereg_replace("[[:alpha:]]+://[^[:space:]]+[[:alnum:]/]","\\0",$originalString);return$newStri

PHP preg_replace 除了括号内的所有逗号

我正在尝试格式化sql语句以使其更易于阅读。$sql="SELECTtitle,url,author,FROM_UNIXTIME(published,'%Y')ASyearFROMarticlesWHEREidIN(2010,2011,2012)";预期结果:SELECTtitle,url,author,FROM_UNIXTIME(published,'%Y')ASyearFROMarticlesWHEREidIN(2010,2011,2012)它只是让像SELECT、FROM、WHERE...这样的关键字在它们自己的行上,然后在每个逗号后插入一个换行符+制表符,但不是括号内的那些逗号

php - 如何 preg_match 第一次出现在字符串中

我正在尝试从电子邮件正文中提取From:address。这是我目前所拥有的:$string="From:user1@somewhere.comThisisjustatest..theoriginalmessagewassentFrom:user2@abc.com";$regExp="/(From:)(.*)/";$outputArray=array();if(preg_match($regExp,$string,$outputArray)){print"$outputArray[2]";}我想获取第一次出现From:..的电子邮件地址,有什么建议吗? 最佳答

php - 使用 preg_match_all 将所有数字与正则表达式匹配

我有一个文本,并尝试为其中的每个3号数字添加链接。我使用带有模式的preg_match_all:(^|[^\d])(\d{3})($|[^\d])此处使用分组来仅将链接添加到数字,而不添加到它们的邻居。测试用例是:a123234b-必须匹配123和234a123_234b-必须匹配123和234aa123234b-必须匹配123和234a0123234b-必须匹配仅234123a234b-必须匹配123和234a123234-必须匹配123和234测试2和3工作正常,其他测试失败,因为2个数字之间有空格。如何匹配两个数字之间只有1个空格? 最佳答案

PHP mb_ereg_replace 不替换而 preg_replace 按预期工作

我正在尝试用空字符串替换字符串中的所有非单词字符(不包括空格),并将所有多个空格放在一起作为一个空格。以下代码执行此操作。$cleanedString=preg_replace('/[^\w]/','',$name);$cleanedString=preg_replace('/\s+/','',$cleanedString);但是当我尝试使用mb_ereg_replace时,什么也没有发生。$cleanedString=mb_ereg_replace('/[^\w]/','',$name);$cleanedString=mb_ereg_replace('/\s+/','',$clean

PHP preg_replace 将 $ 转换为字母 S

我目前有一个非常棒的preg_replace系统可以满足我的seo需求,但我在使用一个字符时遇到了问题,那就是$.我的代码将$返回为空白,但我希望它能将$变成字母S。这可能只是一个小调整,但我确定如何将它挑出来。$urlname=preg_replace("/[^a-zA-Z0-9\/_|+-]/",'',$info['name']);$urlname=strtolower(trim($urlname,'-'));$urlname=preg_replace("/[\/_|+-]+/",'-',$urlname);$seourl=strtolower($urlname);