草庐IT

regex_replace

全部标签

php - 是否有 RegEx 来验证 Base32::RFC 3548

我想在转换之前验证Base32代码。有没有办法做到这一点,比如正则表达式?我需要通过RFC3548遵循这些标准 最佳答案 应该这样做:^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}=)?$Demo(?:[A-Z2-7]{8})*部分处理40位序列。第二部分处理规范指定的最终字节。请注意,此模式也将接受空字符串(0字节)。在PHP中,将其与preg_match一起使用:$isMatch=preg_match('#^(?:[A

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

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

php - RegEx - 排除注释的 PHP 代码块

我正在使用具有正则表达式内容搜索功能的文件搜索实用程序(FileSeek)。我正在搜索的内容基本上是任何未注释的行,其中包含while...each。我已经成功地排除了内联注释行,例如//while(list($key,$value)=each($_GET))使用此正则表达式:^(?:(?!\/\/).)*while.+[\s=(]each[\s(]Demo如何改进正则表达式搜索(使其更具限制性)以从注释行和注释代码块\**\中排除搜索结果,例如:/*while(list($key,$value)=each($_GET))*/或者/*somecodewhile(list($key,$v

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 - Zend Regex > 路由模块问题

我正在使用zend框架构建REST网络服务,我正在使用模块来分隔我的api版本,正如我提到的here例如:“applications/modules/v1/controllers”、“applications/modules/v2/controllers”具有不同的操作和功能集。我在我的application.ini中提到我的默认模块为“v1”正如我提到的那样,我正在使用上下文切换和正则表达式路由here在我接受的解决方案中:$router->addRoute('route1',newZend_Controller_Router_Route_Regex('api/([^-]*)/([^

php - 如何使用 RegEx 排除 [ ] 中的符号

我正在使用PHPpreg_match_all,这是我目前所能得到的......[A-Za-z+\W]+\s[\d]唯一的问题是我需要\W不是"。所以我试过:[A-Za-z+[^\dA-Za-z"]\s?]+\s[\d][A-Za-z+]\s?+[^A-Za-z\d"]?\s[\d]除其他外,它只是失败了,我真的不明白为什么。编辑:这是完整的正则表达式;([A-Z][a-z]+\s){1,5}\s?[^a-zA-Z\d\s:,.\'\"]\s?[A-Za-z+\W]+\s[\d]{1,2}\s[A-Z][a-z]+\s[\d]{4}我把它分成两行,第二行以我发布的内容开头。试图匹配的模式

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 - 告诉 RegEx 在引号内忽略括号

我有以下使用和工作的正则表达式:/\B@(@?\w+(?:::\w+)?)([\t]*)(\(((?>[^()]+)|(?3))*\))?/x这个字符串@extends('template','test')正确分组并提供我需要的内容。问题是如果字符串在引号内包含一个未闭合的括号-它会失败:@extends('template','te)st')将@extends('template','te)作为输出我如何告诉此RegEx忽略引号内的括号('或")这是问题的RegExr演示:http://regexr.com/v1?396ci下面是应该都可以通过的字符串列表:@extends('tem