草庐IT

PHP 正则表达式性能

我必须从字符串中取出一些数据。不幸的是,数据的格式非常不友好。我必须创建大约15个正则表达式放在单独的preg_replace中。值得一提的是,它们本身就有很多或(|)。我的问题是我最终应该做什么:将所有表达式合并为一个并使用|将它们分开或者让它们保持原样-在单独的preg_replace中?创建其他表达式以保持清晰度是非常糟糕的做法吗?我想也许我可以将一些表达组合成一个,但它们变得非常复杂并且不理解。例如我有:$itemFullName=preg_replace("@^\b(([a-zA-Z]{1,3})?[0-9]{1,2}(\.|\-|X)[0-9]{1,2}(\s|\.|\-)

php - 转义 PHP 输出的 HTML 属性的双引号

通常在编写PHP时,我会让它输出一些像这样的HTML-echo"".$link_text."";显然这不会解析,因为我需要转义属性中的双引号元素。是否有一个正则表达式可以快速执行此操作而不是我手动添加反斜杠?另一件事-正则表达式不应该在标签外转义双引号(例如,我附加了$link_text变量的地方。有什么想法吗? 最佳答案 你应该只用单引号代替:echo''.$link_text.''; 关于php-转义PHP输出的HTML属性的双引号,我们在StackOverflow上找到一个类似的问

php - 在 PHP 中,正则表达式从字符串中删除井号(如果存在)

在PHP中,我想从十六进制字符串中删除井号(#)如果它存在。我尝试了以下方法:$str="#F16AD3";//Matchthepoundsigninthebeginningif(preg_match("/^\#/",$str)){//Ifit'sthere,removeitpreg_replace('/^\#/','',$str);};print$str;但是没有用。它打印出#F16AD3如何仅在英镑存在时将其删除? 最佳答案 echoltrim('#F16AD3','#');http://php.net/manual/en/fu

php - Zend/PHP : How to remove all leading 0s from string?

我有一个只包含数字的字符串。现在我想从该字符串中删除所有前导0例如:input:000000001230output:1230input:01000output:1000在PHP/Zend中有这方面的功能吗?谢谢 最佳答案 $myvar=ltrim('01000','0'); 关于php-Zend/PHP:Howtoremoveallleading0sfromstring?,我们在StackOverflow上找到一个类似的问题: https://stackov

php - 正则表达式模式仅匹配不包含空格的字符串 PHP

我想匹配变量中包含的单词/模式,但只匹配没有空格的单词。请提出建议。$var='look';$array=('look','greatlook','lookgreat','lookgreat','badlook','lookbad','look','look');匹配词:look,greatlook,lookgreat,badlook不匹配:看起来很棒,看起来很糟糕,看起来(尾随空格),(空格)看起来。下面函数的语法没问题,但它匹配所有内容$match=preg_grep("/$var/",$array);$match=preg_grep("/^$var/",$array);(matc

php - 你如何实现一个好的脏话过滤器?

我们中的许多人都需要处理用户输入、搜索查询以及输入文本可能包含亵渎或不良语言的情况。这通常需要过滤掉。在哪里可以找到各种语言和方言的脏话list?是否有API可用于包含良好列表的来源?或者可能是一个带有一些参数的简单说“是的,这是干净的”或“不,这是脏的”的API?有哪些好方法可以捕捉试图欺骗系统的人,例如a$$、azz或a55?如果您提供PHP解决方案,则可加分。:)编辑:对简单地避免编程问题的答案的回应:我认为当用户可以使用公共(public)图片搜索来查找添加到敏感社区池中的图片时,这种过滤器会有用武之地。如果他们可以搜索“阴茎”,那么他们可能会得到很多照片,是的。如果我们不想要

php - 正则表达式、PHP 和邪恶的嵌套 (?R)

更新所以我仍然在搞乱这个,并且已经找到了标签的所有实例,尽管我宁愿只找到最深的堆叠实例,因为那样生活会更容易......无论如何这就是我得到../(({{)(?:(?=([^\/][^]*?))\3|(\/[\w])))([a-zA-Z0-9\$\'\"\s\#\%\^\&\!\.\_\+\=\-\\\*\(\)\]+?}})/是否有任何正则表达式大师可以给我一些指示或模仿我需要的正则表达式?这只会获得像这样结束的{{tag}}的最深堆栈实例{{//tag}}原创好的,所以我遇到了一个问题,我看到其他人也遇到过,但是采用了不同的方法..或者我认为..所以我很好奇是否还有其他人可以帮助我

php - 关键字 highlight 是在 PHP preg_replace() 中高亮显示高亮

我有一个小型搜索引擎在做它的事情,并且想要突出显示结果。我以为我已经解决了所有问题,直到我今天使用的一组关键字把它从水中吹了出来。问题是preg_replace()循环遍历替换,后来的替换替换了我插入到之前的文本中的文本。使困惑?这是我的伪函数:publicfunctionhighlightKeywords($data,$keywords=array()){$find=array();$replace=array();$begin="";$end="";foreach($keywordsas$kw){$find[]='/'.str_replace("/","\/",$kw).'/iu'

php - 带属性的正则表达式

我想解析这种代码:{articlesmode="extrait"nb="3"}我正在使用这个正则表达式:@\{(articles)(?:(?:\s|\ )*(?:(\w+)="(\w+)"))*\}@但它不起作用,当我执行preg_match_all时,这是带有$matches参数的print_r的结果:Array([0]=>{articlesmode="extraits"nb="3"}[1]=>articles[2]=>nb[3]=>3)我认为最后一个*应该可以获取所有属性,而不仅仅是最后一个。您看到遗漏或不正确的地方了吗?提前致谢 最佳答案

php - URL 检测和 BB-Style 标签(正则表达式,前瞻问题)

所以我正在构建一个小型CMS,我想避免在内容编辑器中使用HTML。出于这个原因,我想检测文本中的原始URL以及支持类似BB的标签,以实现更好的自定义。www.example.com[linkhttp://www.example.com]Clickme[/link]不幸的是,我对正则表达式还很陌生,我似乎无法让它正常工作。我在字符串上运行两个正则表达式:第一个检测原始URL,第二个检测类似BB的URL。后者似乎工作得很好,但第一个会干扰,并且也会转换包含在标签中的URL。我从找到的一段代码开始here并做了一些补充。这是非标记URL的代码:/*don'tmatchURLspreceede