草庐IT

php - 如何在一个 preg_replace() 中将所有非单词字符和多个空格更改为 ' ' 然后将所有空格更改为 '-'

我想在以下条件下更改图像名称所有非单词字符变成空格,然后所有空格变成-表示如果我的图像名称是:HelloMynameis'Kh@n"Mr..Khan"那么它应该被更改为Hello-My-name-is-kh-n-mr-Khan.我需要分两步使用下面,$old_name='HelloMynameis\'Kh@n"Mr.Khan';$space_name=preg_replace('/\W/','',$old_name);$new_name=preg_replace('/\s+/','-',$space_name);echo$new_name//returnsHello-My-name-i

php - 删除空白字符,除了 PHP 中的引号内?

我需要从字符串中删除所有空格,但引号应保持原样。这是一个例子:stringtoparse:holahola"pepsicola"yayoutput:holahola"pepsicola"yay有什么想法吗?我确信这可以使用正则表达式来完成,但任何解决方案都可以。 最佳答案 我们可以匹配字符串或引号[^\s"]+|"[^"]*"所以我们只需要preg_match_all并连接结果。Example:$str='holahola"pepsicola"yay';preg_match_all('/[^\s"]+|"[^"]*"/',$str,

php - 帮助 PHP 的 Bootstrap 和正则表达式

我正在开发一个新的PHP框架供个人在未来的项目中使用,并且下面是我到目前为止计划的文件结构。我只需要一些关于我的.htaccess文件的正则表达式的帮助,以及一些关于如何加载我想要的文件的帮助。基本上,域之后的任何“文件夹”都应该从我的“模块”文件夹中加载。我想让它从www.domain.com/module/account/加载www.domain.com/account/。对于我在模块下的任何其他文件夹,我也希望它采用这种格式。“模块”下的所有文件夹/文件都应该像在顶层一样加载。在这个例子中,虽然在我的module/account/文件夹中,如果我有一个名为home.php的文件,

php - 单词的正则表达式

我正在用PHP解决字符串解析问题。我想要字典中单词的正则表达式。该词只能包含A-Z和a-z。我想出了这个正则表达式,但这似乎不起作用。有人可以帮忙吗。$regexp="/[A-z]+/";if(preg_match($regexp,$buffer)){print$buffer."";}添加rkt的评论以提高可读性目前正在使用这个正则表达式$regexp="/[A-Za-z]+/";但仍然有很多不相关的词被打印出来,例如。a.new,#quickbara.new{color:#ba0000}enwiki:resourceloader:filter:minify-css:5:f2a9127

PHP/regex解析NGINX错误日志

错误条目如下所示:2011/06/1013:30:10[error]23263#0:*1directoryindexof"/var/www/ssl/"isforbidden,client:86.186.86.232,server:hotelpublisher.com,request:"GET/HTTP/1.1",host:"hotelpublisher.com"我需要解析:date/timeerrortypeerrormessageclientserverrequesthost第一位(解析日期)使用substr很容易。虽然我的REGEX不太好,但我希望听到更好的解决方案。我猜想,简单地

php - 恰好 10 个字符的 perl 正则表达式

我在PHP中使用带有preg_match函数的perl风格的正则表达式。我想验证一个恰好10个字符的key,包含大写字母字符或数字。我有preg_match('/[^A-Z0-9]/',$key);它会在有效字符旁边找到无效字符。以我有限的知识,我试过了preg_match('/[^A-Z0-9]{10}$/',$key);结果匹配所有我的测试字符串,甚至是无效的。如何指定此正则表达式? 最佳答案 您放错了锚定字符串开头的^字符。/[^A-Z0-9]{10}$/将匹配所有以10个非大写字母和数字的字符结尾的文件。正确的RE应该是:p

php - 替换单词数组

x.replace(/old/gi.'new');x.replace(/whatever/gi.'whatevernew');x.replace(/car/gi.'boat');有没有一种方法可以将它们组合在一个正则表达式语句和新旧单词数组中。也欢迎使用PHP解决方案。 最佳答案 你可以这样做:varx='Theoldcarisjustwhatever';vararr=[{old:/old/gi,new:'new'},{old:/whatever/gi,new:'whatevernew'},{old:/car/gi,new:'boa

php - 在 PHP 中删除 BBCode 标签及其内容

这个问题在这里已经有了答案:10年前关闭。PossibleDuplicates:RecursiveBBCodeParsingStripBBCodeviaRegEx在PHP中删除字符串的所有BBCode标签及其内容的最佳方法是什么? 最佳答案 demo 关于php-在PHP中删除BBCode标签及其内容,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6777257/

php - 修剪连续的重复字符

所以我通过执行以下操作为我的页面创建url:$uri=strtolower($info->name);$uri=str_replace('&','and',$uri);$uri=$info->id."-".preg_replace('/[^a-zA-Z0-9]/','-',$uri);基本上,我将所有内容都变成小写,将&更改为and并将所有特殊字符更改为-。我现在唯一的问题是,例如$info->name是thisis-astring它将显示为this-is---a-string.我希望它成为this-is-a-string而无需执行str_replace('---','-',$inpu

PHP Regex 匹配所有大写字母的单词或单词组

如何使用正则表达式来匹配全部为大写字母的单词或单词组?我相信我已经解决了一半的问题,尽管这可能不是正确的方法。我试图捕捉一个全部大写的单词,或者两个或三个-基本上,如果它们是连续的,我希望它们被捕捉为一个组,而不是每个单词本身。例如:“HAPPYBIRTHDAYTOMMY”不会匹配并返回[0]->HAPPY,[1]->BIRTHDAY,[2]->TOMMY,但整个组,例如[0]->汤米生日快乐。我在下面使用的代码将“HAPPYBIRTHDAY”匹配在一起,或者只是“TOMMY”,但不是所有东西都匹配。[A-Z]{1,}\s[A-Z]{1,}|\b[A-Z]{1,}\b