草庐IT

php - 如何在大量数据中preg_replace_all

我只是制作了一个升级脚本,用于将所有MODX片段标签替换为更新的格式:旧的:[~123~]新的:[[~123]](当然,123-这是一个例子-有很多不同的数字)此外,我还想将所有自定义旧片段替换为较新的片段:旧代码段格式:[!MySnippetName?¶m1=`value1`¶m2=`value2`!]新的:[[!MySnippetName?¶m1=`value1`¶m2=`value2`]](当然,¶m1=value1¶m2=value2只是一个例子,在实际片段中是不同的)如何使用preg_replace函数进行全局替换?我应该这样创

php - 使用 php 将破折号替换为空格

你能帮我解决我的问题吗?我想创建一个函数来将空格替换为破折号然后我找到了解决方案这是我找到的sulotion:functionslug($phrase,$maxLength=100000000000000){$result=strtolower($phrase);$result=preg_replace("/[^A-Za-z0-9\s-._\/]/","",$result);$result=trim(preg_replace("/[\s-]+/","",$result));$result=trim(substr($result,0,$maxLength));$result=preg_r

php - 拆分逗号分隔的字符串,但只用逗号分隔

嗨,我有一个长字符串0BV,0BW,100,102,108,112,146,163191,192,193,1D94,19339,1A1,1AA,1AE,1AFD,1AG,1AKF.......我想通过substing在页面中显示它喜欢0BV,0BW,100,102,108,112,146163191,192,193,1D94,193391A1,1AA,1AE,1AFD,1AG,1AKF我想做的是从字符串创建子字符串,长度为100个字符,但如果第100个字符不是逗号,我想检查字符串中的下一个逗号并以此分隔。我尝试用chunk()按字数拆分,但是由于子串长度不同,在页面中显示不合适$db_

Javascript 拆分并加入 PHP

我如何用PHP编写这段代码?我尝试了几件事,但没有用。你能帮帮我吗?returns.split(/\r?\n/).join("");谢谢! 最佳答案 看起来你在使用正则表达式。这个怎么样echoimplode(preg_split('/\r?\n/',$s),''); 关于Javascript拆分并加入PHP,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27921992/

php - 正则表达式获取数字后的数字和字符串

我需要从两个不同的字符串中提取数字和数字后的单位。一些字符串在数字和单位之间有空格,如150g而其他字符串则没有150g$text='RexonaApDeoAerosol150mlActiveCPD-05923';$text='CutexNailPolishRemoverMoisture100ml';preg_match_all('!\d+!',$text,$matches);if(sizeof($matches[0])>1){//howcanIextract'ml'}else{//howcanIextract150ml?}你们能帮忙吗? 最佳答案

php preg_match 只匹配数字、字母和点

我已经搜索了2个小时了,但还是没找到。我需要评估帐户名称的输入。这只能包含数字(0-9)、字母(a-z和A-Z)和点(.).其他一切都是被禁止的。所以,没有下划线(_),加上(+)等等。有效的帐户应该是这样的,例如:john.greenluci.mayer89admin我尝试了很多preg_match/regex示例,但无法正常工作。每当我执行echopreg_match(...)时,我都会将1设为true。$accountname="+_#luke123*";echopreg_match("/[a-z0-9.]/i",$accountname);//-->givesback1astr

带有克罗地亚字符的 PHP preg_match

我是正则表达式的新手,但在StackOverflow上进行了一些搜索,我设法得到了我想要的东西(如果2个以上的单词用逗号分隔,则返回true,如果不是,则返回false或这个词以逗号结尾,但后面没有任何内容),除了我对克罗地亚语字符(č,ć,ž,đ,š大写和小写)有疑问。我当前的preg_match看起来像if(preg_match('/^(([a-zA-Z0-9]+\\s*,\\s*)+(\\s*)([a-zA-Z0-9]+))$/',$data)){//dostuff}但是这种方法的问题是如果它有Č,ć,ž...并且我不会返回true知道这是因为[a-zA-Z]没有“寻找”这个字符

PHP使用正则表达式将字符串解析为数组

我有这样一个字符串:$msg,array('goo','gle'),000,"face",'book',['twi'=>'ter','link'=>'edin']我想使用preg_match_all将其转换为如下所示的数组:array(0=>$msg,1=>array('goo','gle'),2=>000,3=>"face",4=>'book',5=>['twi'=>'ter','link'=>'edin']);Notethatallthevaluesarestring.我不太擅长正则表达式,所以我一直无法为此创建一个模式。多个preg调用也可以。 最佳答

php - 在选择首先替换字符串部分的顺序时替换字符串

我正在尝试用某些单词替换一个字符串,但我也想按照数组中的位置顺序替换它。例如,我想在尝试替换“ab”之前替换“bc”,而不改变原始字符串中的位置。顺便说一句,这些字母应该代表实际的单词,它们不应该是另一个单词的一部分。例如,“太阳”一词是“向日葵”的一部分,不能因为其中有“太阳”一词就替换“向日葵”一词。$text="abc";$replacement=array("ab"=>"ab","bc"=>"bc");$search=array_map(function($v){returnpreg_quote($v,"/");},array_keys($replacement));echo$

php preg_match_all 返回数组数组

我想替换一些模板标签:$tags='{name}text{first}';preg_match_all('~\{(\w+)\}~',$tags,$matches);var_dump($matches);输出是:array(2){[0]=>array(2){[0]=>string(6)"{name}"[1]=>string(7)"{first}"}[1]=>array(2){[0]=>string(4)"name"[1]=>string(5)"first"}}为什么里面有2个数组?如何实现仅第二个? 最佳答案 那是因为您的正则表达式可