我对str_replace()和数字有点问题。$jud='BrineySpears122009';$jud=str_replace(array('2007','2008','2009','2010','2011','2012'),'2013',$jud);$jud=str_replace(array('0'),'',$jud);$jud=str_replace(array('1'),'By',$jud);$jud=str_replace(array('2'),'Gun',$jud);$jud=str_replace(array('3'),'Fast',$jud);echo$jud;结果
我想要一个将使用preg_replace转换的正则表达式=>-1121234.56to(1,121,234.56)=>-1121to(1,121.00)=>1121to1,121.00现在我已经用过了$number=-12121234.56;$replaced=preg_replace('/(-?\d+)(\d\d\d)/','$1,$2',$number);O/P-12,121,234.56我也想要上述功能。 最佳答案 你可以只使用number_format():functionmyformat($nr){$nr=number_f
我正在使用预匹配来验证密码:(preg_match("/^.*(?=.{5,}).*$/",$password)它也接受特殊字符。但出于某种原因,我需要修改它应该接受仅字母数字至少5个字符长非常重要的是它不能有任何重复或增量字符,如:aaaa或12345或abc123等. 最佳答案 if(preg_match('%^#Startofstring(?!.*(.)\1)#Assertnorepeatedcharacters#Assertnosequentialdigits/characters(?!.*(?:01|12|23|34|45
在哪里可以找到使用preg_replace时必须转义的所有字符列表。我在数组$ESCAPE_CHARS中列出了我认为是其中的三个。我还缺少什么。我需要这个,因为我要对提交的表单进行预替换。也就是说。$ESCAPE_CHARS=array("#","^","[");foreach($ESCAPE_CHARSas$char){$_POST{"string"}=str_replace("$char","\\$char",$_POST{"string"});}$string=$_POST{"string"};$test="stringoftext";$test=preg_replace("$s
我的数字串没有正确替换。我期望替换后的输出为9876543210但事实并非如此。我做错了什么?".str_replace($numbers,$code,$pre);?> 最佳答案 这会产生输出0123443210,因为带有数组的str_replace会在遍历$numbers时开始替换较早的匹配项对于像这样的单个字母换位,请改用strtr$encoded=strtr($pre,"0123456789","9876543210"); 关于PHPstr_replace数字与其他数字,我们在St
我正在尝试使用preg_match_all()解析一些网页,其中一些网页非常大,有几MB。并且其中一个正则表达式匹配了一些文本字符串,这些字符串非常大,以至于它们似乎无法匹配并获取它们。它只是返回一个空字符串。当我手动选择它并将其保存为.txt文件时,其中一个字符串是1.32MB或1,393,557字节。当字符串短得多,只有几万字节时,正则表达式成功匹配并获取它。所以我的问题是,我发现preg_match_all()可以匹配的字符串有一个限制/最大长度,它是什么以及如何将它设置得更大? 最佳答案 将ini_set('pcre.bac
我对preg_replace和$1+变量有问题,$1和变量之间没有空格。我有这个代码:$replace_id=5000;$search=1000;$movies='[1000,2000,2300,1234]';$new_movies=preg_replace('#(,|\[)'.$search.'(,|\])#Uis','$1'.$replace_id.'$2',$movies);echo$new_movies;输出:000,2000,2300,1234]但是我想要这样的输出:[5000,2000,2300,1234]当我在$1和$replace_id之间使用带有空格的preg_rep
有没有办法只在有打开和关闭的情况下替换标签,例如://searchtoreplace$text='[b]thiswillbebold[/b]butthiswillbenot.';$search=array('[b]longstring[/b]');//replacewith$replace=array('longstring');echostr_replace($search,$replace,$text);想要的结果:thiswillbeboldbutthiswillbenot.我不确定如何正确设置它,如有任何帮助,我们将不胜感激。 最佳答案
我有以下两个表达式。两者几乎相同,首先我检查以3个破折号结尾的字符串,然后检查以3个下划线结尾的字符串$str="this-is_normal-test---";$str=preg_match("/[a-zA-z0-9]+(-+)$/",$str,$matches);print_r($matches);$str="this-is_normal-test___";$str=preg_match("/[a-zA-z0-9]+(_+)$/",$str,$matches);print_r($matches);这是输出:Array([0]=>test---[1]=>---)Array([0]=>
我正在尝试用空格而不是单引号之间的pref_split字符串。这是我正在使用的字符串:'physicalmemory%'=92%;99;100'physicalmemory'=29.69GB;31.68;32;0;32以下正则表达式模式成功匹配了我要分割的空间:/\x20(?=[^']*('[^']*'[^']*)*$)\g我遇到的问题是我使用http://www.regexr.com/编写了这个字符串这是特定于JavaScript正则表达式的,我需要它才能在PHP中工作。这是我目前的PHP代码,但它抛出了一个错误:preg_split("/\x20(?=[^']*('[^']*'[^