草庐IT

preg_replace_all

全部标签

PHP preg_replace $1 没有空格

我对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

php - 使用 str_replace 或其他函数替换标签

有没有办法只在有打开和关闭的情况下替换标签,例如://searchtoreplace$text='[b]thiswillbebold[/b]butthiswillbenot.';$search=array('[b]longstring[/b]');//replacewith$replace=array('longstring');echostr_replace($search,$replace,$text);想要的结果:thiswillbeboldbutthiswillbenot.我不确定如何正确设置它,如有任何帮助,我们将不胜感激。 最佳答案

php - 破折号和下划线的 preg_match 的奇怪行为

我有以下两个表达式。两者几乎相同,首先我检查以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]=>

php - preg_split 字符串不在单引号之间

我正在尝试用空格而不是单引号之间的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(?=[^']*('[^']*'[^

php - 使用 preg_match 检查字母数字点破折号和下划线的正则表达式是什么?

我正在检查用户输入的用户名我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字母、数字和。-_即只有字母数字点破折号和下划线,我尝试了htaccess中的正则表达式,就像这样([A-Za-z0-9.-_]+)就像这样,但它似乎不起作用,它为简单的alpha用户名提供false。$text='username';if(preg_match('/^[A-Za-z0-9.-_]$/',$text)){echo'true';}else{echo'false';}我怎样才能让它发挥作用?我打算像这样在函数中使

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: 如何忽略 preg_replace 中的字母大小写?

我想匹配字符串中的文本,同时忽略它的字母大小写。如果字母大小写不相同,我的示例将失败。/*$text:fOoBaR$str:littlebrownFoobarreturn:littlebrownFoobar*/functionbold($text,$str){//Thisfailstomatchifthelettercasesarenotthesame//Note:Idonotwanttochangethereturned$strlettercase.returnpreg_replace('/('.str_replace(array("/","\\"),array("\/","\\")

php - Laravel 查询生成器 : Select all fields except for a few

使用Laravel查询构建器,可以很容易地使用->select()选择或别名字段。如何选择除少数字段以外的所有字段?例如,我不希望将记录的id返回给前端。 最佳答案 http://laravel.com/docs/4.2/eloquent如果您仍然不介意从技术上选择它们,您可以抑制来自Laravel的默认数组/JSON转换的字段:classUserextendsEloquent{protected$hidden=['password','id',...];} 关于php-Laravel查

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]没有“寻找”这个字符