草庐IT

REPLACE_EXISTING

全部标签

php - 如何使用 RegexIterator::REPLACE 模式?

我的代码有什么问题:$i=newRegexIterator(newArrayIterator(array('test1'=>'test888','test2'=>'what?','test3'=>'test999')),'/^test(.*)/',RegexIterator::REPLACE);foreach($ias$name=>$value)echo$name.'=>'.$value."\n";迭代器是空的,为什么?感谢您的帮助! 最佳答案 如果您省略操作模式(新RegexIterator语句中的第3个参数),您将获得匹配值,如

php - preg_replace 与 preg_filter

preg_replace和preg_filter有什么区别?在某些情况下使用其中一个而不是另一个有什么优势吗?我尝试阅读文档,但仍然不太了解它们之间的区别。请赐教。谢谢。 最佳答案 preg_filter优于preg_replace的优点是您可以检查是否有任何内容被替换,因为如果没有任何内容被替换,preg_filter将返回null,而preg_replace无论如何都会返回主题。$subject='chips';$pattern='/chops/';$replacement='flops';if(is_null(preg_fil

php - preg_replace 不适用于某些单词/字符

$str='کسنےموسیٰکےبارےمیںسناہے؟';$str=preg_replace('/(?这无法替换موسیٰ。它应该给出کسنےMusaکےبارےمیںsunaہے؟而不是给出کسنےموسیٰکےبارےمیںsunaے͟。所有以ٰ结尾的单词都会发生这种情况,例如تعالیٰ。它适用于ٰ位于单词中间的单词(没有以ٰ开头的单词)。这是否意味着\b不能与ٰ一起使用?是错误吗? 最佳答案 原因是单词边界在以下位置匹配:Beforethefirstcharacterinthestring,ifthefirstchar

php - Preg_replace,只替换( )中的模式部分?

很抱歉这个基本问题,但我一直在查看我能找到的关于preg_replace的所有信息,但我仍然无法弄清楚。我有一个大字符串,例如:$string='#tjs{fassdaf}#fsk{fssf}#fskff{casf}';当我这样做时,它会替换整个模式,而不仅仅是()中的部分,因为我希望它这样做。我想知道如何才能替换()中的部分。谢谢$pattern='/#.*tjs.*\{.*(.*)\}/imsU';$replacement="test";$return_string=preg_replace($string,$pattern,$replacement);预期被替换的字符串:'#tj

php - 如何使用PHP preg_replace 正则表达式查找和替换文本?

我写了这段PHP代码来做一些替换:functioncambio($txt){$from=array('/\+\>([^\+\>]+)\text\1','\1',);returnpreg_replace($from,$to,$txt);}echocambio('ThefruitImostlikeis:+>%apple%%banna%%orange%结果是:ThefruitImostlikeis:applebannaorange.但是我需要识别水果的span标签,如下所示:ThefruitImostlikeis:applebananacoco.我会买一个水果给谁发现一个正则表达式来完成这个

php - preg_replace + UTF-8 在一台服务器上不起作用,但在另一台服务器上起作用

echopreg_match("/\b(בדיקה|מילה)\b/iu","זוהיבדיקה");出于某种原因,这段代码在我测试过的几台服务器上返回1,但在一台特定服务器上返回0。PCRE编译时支持UTF-8和Unicode属性支持。可能是什么问题? 最佳答案 PHP使用的PCRE版本之间可能存在差异。PHP和PCRE版本:http://php.net/pcre.installation你应该使用8.10+(PHP5.3.4+)Version8.1025-Jun-2010:AddedPCRE_UCPtomake\b,\d,\s,

php - 如何在 preg_replace() 函数中使用 substr() 函数?

这是我目前所拥有的,但无论我尝试什么,我的album-content都不会被substr()截断。$gallery=preg_replace('/()(.*?)()/e',"'$1'.substr(\"$2\",0,50).'$3'",$gallery);更新:原来我的类名不正确,我的正则表达式似乎确实有效。我只需要执行另一个str_replace()来取消转义输出。$gallery=preg_replace('/()(.*?)()/e',"'$1'.substr(\"$2\",0,50).'$3'",$gallery);$gallery=str_replace('\"album-de

php - 扩展构建器中的 "Map to existing tables"在 TYPO3 中显示奇怪的问题

在我的扩展MyExt中,我将模型Page映射到TYPO3中的pages表。首先,它向我显示了typemismatch错误,无论如何我还是继续并保存了它。会发生以下情况:我的页面树变成了这样:我的新记录表只显示UID,不显示标题:我的页面编辑变成这样:在我的MyExt/Configuration/TypoScript/setup.txt中我有这个:config.tx_extbase.persistence.classes{Tx_MyExt_Domain_Model_Page{mapping{tableName=pages}}}这是一个错误吗?或者我做错了什么?这是我的/Domain/Mo

php - 逻辑异常错误 : Passed array does not specify an existing static method

请问我的autoloader类/函数与spl_autoload_register有任何错误吗?感谢您的帮助。这是我的代码我得到了这个错误Fatalerror:Uncaughtexception'LogicException'withmessage'Passedarraydoesnotspecifyanexistingstaticmethod(class'core'notfound)'inC:\xampp\htdocs\test\system\core.php:14Stacktrace:#0C:\xampp\htdocs\test\system\core.php(14):spl_auto

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

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