草庐IT

Preg_Replace

全部标签

php - 任何更快、更简单的 php preg_match 替代品

我使用的是cakephp1.3,我有用户提交文章的文本区域。提交时,我想查看文章中的某些关键词,并为文章添加相应的标签。我在考虑preg_match,但是preg_match模式必须是字符串。所以我将不得不遍历一个数组(大)。有没有更简单的方法来插入模式的关键字数组。非常感谢您的帮助。谢谢。 最佳答案 我建议将您的关键字数组视为哈希表。小写文章文本,按空格展开,然后遍历展开数组的每个单词。如果该词存在于您的哈希表中,将它插入一个新数组,同时跟踪它出现的次数。在这种情况下,我运行了一个快速基准测试,将正则表达式与哈希表进行比较。用正则

php - 我是否正确使用了 preg_replace (PHP)?

我想我有这个权利,但我希望有人能证实这一点。functionstorageAmmount(){system('stat/web/'.$user."/|grepSize:>/web/".$user."/log/storage");$storage=fopen('/web/'.$user.'/log/storage');$storage=str_replace('Size:',"",$storage);$storage=preg_replace('Blocks:(((A-Z),a-z),1-9)','',$storage);}这是文本文件中的行:Size:4096Blocks:8IOBlo

php - regex preg php 中的 [^>] 是什么意思?

示例代码:google.comcade.comhtml;echopreg_replace('#]+)"title="([^>]+)">([^>]+)#','$1-$2',$html);?>它工作正常,但我想知道[^>]是什么意思。这个我知道+=1个或更多;()=子模式;但是我不知道^> 最佳答案 表示>以外的任意字符 关于php-regexpregphp中的[^>]是什么意思?,我们在StackOverflow上找到一个类似的问题: https://stack

php - 从字符串中删除多个重复字符

我有这样的字符串:$str='This-----isabbbbtest';如果出现超过3次,如何删除所有重复字符?因此,例如,上面的字符串必须如下所示:'Thisisatest'; 最佳答案 您可以使用regularexpressions执行此操作和preg_replace():$new_str=preg_replace('/(.)\1{3,}/','',$str); 关于php-从字符串中删除多个重复字符,我们在StackOverflow上找到一个类似的问题:

PHP preg_replace 在最后一个下划线之后出现任何文本

我可以使用explode来做到这一点(或者使用strrpos玩得开心),但我更喜欢使用preg_replace因为应该有点更快,我认为(不是吗?)。此外,它简洁优雅。目的是,给定一个类似a_b_c的字符串来获取另一个字符串,其中字符跟在最后一个_之后,其中替换为传递的字符串。我不擅长正则表达式。我必须在学习中抽出时间买一本好书。不管怎样,我试过这个正则表达式'/_(.*)$/'作为匹配字符串的结尾,捕获最后一个下划线后面的任何字符。我的论证有什么问题?//Doitusingexplodefunctionfoo($string,$replacement){$pieces=explode(

php - 我如何将 preg_match 与字母数字和 unicode 接受一起使用?

我要用PHP建立一个多语言网站,需要有一个preg_match来传递所有Unicode字符和数字。即我需要它来传递英文字母、西类牙文字母、意大利文字母,正如您可能知道的那样,我不想传递其他字符,例如'"_-和...我想要这样的东西:$pattern='/^[unicodecharswithout\'-_;?]*$/u';if(!preg_match($pattern,$url))echo#error; 最佳答案 字母的Unicode属性是\pL所以在preg_match中:preg_match('/^\pL+$/u',$string

PHP str_replace 将函数/文件包含为模板系统的一部分

概述:我正在为我的网站制作一个诱人的系统,目前运行良好,并且按照我的预期运行,唯一的问题是当我想要显示{PAGE_SIDEBAR}之类的内容时文件template/sidebar.php或类似的东西。我正在使用//loadsofotherstr_replacehere$body=str_replace("{PAGE_SIDEBAR},include("template/sidebar.php"),$body);echo$body;这是有效的,但是它在正文的开头包含文件,而不是{PAGE_SIDEBAR}所在的位置。标记所在的位置显示数字1。查看截图以获得更好的解释:Howtherend

php - preg_match 允许反斜杠的问题

我遇到了一个关于preg_match()和反斜杠的奇怪问题。我正在尝试检查非法字符的用户名。它适用于几乎所有东西,但显然像“BobDobbs”这样的用户名正在通过。我已经设法使用strpos()轻松地解决了这个问题,但我仍然不确定我的语法有什么问题。运行PHP5.3.10。$displayname='BobDobbs\\\\';if(preg_match("/[^A-z0-9_.-]/",$displayname)){$errors[]='Namecontainsillegalcharacters';} 最佳答案 范围A-z包含\字

php - 正则表达式 - preg_match 拉丁和希腊字符

这个问题在这里已经有了答案:MatchingUTFCharacterswithpreg_matchinPHP:(*UTF8)WorksonWindowsbutnotLinux(3个答案)关闭9年前。我正在尝试为任何给定的字符串创建一个正则表达式。目标:删除所有不是“latin”或“lowercasegreek”或“numbers”的字符".到目前为止我做了什么:[^a-z0-9]这非常适合拉丁字符。当我尝试这个时:[^a-z0-9α-ω]运气不好。有效但遗漏了任何其他符号,如!!#$%@%#$@,`我对正则表达式的了解有限。任何帮助将非常感激!编辑:下面发布的是匹配指定字符并从中创建一

php - 如何使用 preg_replace 删除字符串中出现的所有以下样式标签/模式?

我正试图找到一个匹配以下内容的正则表达式:.article-content{position:relative;padding-bottom:140px;}.pane.pane-newsletter-contextual{display:block;bottom:32px;position:absolute;left:0px;margin-left:0px;}我需要正则表达式才能将其传递给preg_replace并将其从字符串中删除。我有正则表达式的基本知识,并在查看http://www.regular-expressions.info/examples.html上的基础知识后尝试了这