草庐IT

regex_extract

全部标签

php regex - 干净的文件名

我正在寻找优雅的正则表达式来清理括号,内容看起来像文件名。[Nibhjusto]elitNulla[link.pdf]auctoripsummolestie(link.pdf)Condimentumeuismodnon[link.xls](link.xls)[link.doc](link.doc)tempusIn[Curabitur]et结果应该是:NibhjustoelitNullaauctoripsummolestieCondimentumeuismodnontempusInCurabituret我相信一定有一个捷径可以做到这一点。(文件的意思很简单-包括点。不需要句子检查。)感谢

php regex删除CSS供应商前缀 hell

我正在尝试清理我的CSS文档以仅删除那些带有供应商前缀的行:-webkit-......;-o-.....;-ms-......;-khtml-......;-moz-......;如您所见,所有行都具有相同的模式并以分号结尾,只是供应商不同。到目前为止,我尝试了一个一个地搜索,但应该有更好的方法来实现这一点:preg_match("/(-webkit.*;)/",$css,$webkit);$css=str_replace($webkit[1],'',$css);//...etc任何提示将不胜感激。谢谢更新:原因是我将使用http://leaverou.github.com/pref

php - 在 PHP 中使用 REGEX 选择样式属性

我希望仅在php中使用正则表达式获取样式属性及其内容。例如输入期望的输出style="float:left;"我尝试过的:这似乎返回了整个图像,我不确定为什么。我不擅长正则表达式。$img='';preg_match('/(]+)style=".*?"/i',$img,$match);返回:[0]=>Array([0]=>谁有任何指点?干杯。 最佳答案 你几乎是正确的,你只需要捕获你想要的部分,将它括在括号中。您目前正在捕获错误的部分:$img='';preg_match('/]+(style=".*?")/i',$img,$mat

Php Regex查找字符串是否为mysql select语句

我试图在执行查询之前验证查询,如果查询不是mysqlselect语句,那么我必须向用户显示消息。我从这个链接找到了下面的正则表达式:ValidatesimpleselectqueryusingRegularexpression$reg="/^Select\s+(?:\w+\s*(?:(?=from\b)|,\s*))+from\s+\w+\s+where\s+\w+\s*=\s*'[^']*'$/i";接下来我写了下面的代码,但它总是打印不选择查询($match每次都是空的)$string="select*fromuserswhereid=1";preg_match_all($reg,

PHP Regex - 使用逗号分隔符拆分字符串,忽略标签之间的逗号

给定这个字符串:$somethingawesome=',,TRUE,foo';如何得到这样的数组:Array([0]=>[1]=>[2]=>TRUE[3]=>foo) 最佳答案 根据给定的字符串,您可以使用以下...$results=preg_split('/(?:]*>)?\K,/',$str);print_r($results);输出Array([0]=>[1]=>[2]=>TRUE[3]=>foo)或者当然你可以匹配所有而不是使用split..preg_match_all('/]+>|[^>

PHP Regex 查找字符串中所有大写的单词

PHPRegex查找字符串中所有大写的单词:$string="testsampletest:2015.ŽYDRŪNASPAVARDENIS";preg_match_all('/\b([A-Z-][\p{L}\pL]+)\b/',$string,$matches);var_dump($matches);输出:array(2){[0]=>array(2){[0]=>string(8)"YDRŪNAS"[1]=>string(10)"PAVARDENIS"}[1]=>array(2){[0]=>string(8)"YDRŪNAS"[1]=>string(10)"PAVARDENIS"}}问题

PHP REGEX 删除括号和括号内的文字

需要删除其中的括号和文字。现在,它几乎可以正常工作。删除从括号开始的所有文本。我的代码:$lines=preg_replace("/\(([^\d]+)/",'',$lines);例如,文本:Somerandomwords(word1/word2/word3)aaaa代码也删除括号后的所有文本,Somerandomwords但我需要做的是(它应该是什么样子):Somerandomwordsaaaa 最佳答案 /\([^()]*\)/\(-左括号[^()]*-尽可能多的字符,不是括号\)-右括号您可以选择删除末尾的一个空格(/\([^

php - RegEx (.*?) 除了一个字符之外的任何东西

我正在尝试将某些内容与/^(.*?)\/$行之间的模式相匹配。但是,由于(.*?)已经匹配/它也匹配anything//////////但我只希望它匹配anything/。是否有从(.*?)或其他解决方案中排除/的好方法? 最佳答案 使用negatedcharacterclass[^\/]:/^([^\/]*)\/$/参见regexdemo在PHP中,您可以使用其他一些分隔符来避免模式中的过度转义,比如~:$rx='~^([^/]*)/$~';详细信息:^-字符串的开始([^\/]*)-第1组捕获除/以外的0+个字符\/-文字/$-

PHP - extract() 类型

PHP的extract()函数可以采用几种extract_types之一。但是extr_prefix_same和extr_prefix_if_exists有什么区别呢?手册听起来像是,在任何一种情况下,如果变量名已经存在,新变量将被添加前缀。谢谢! 最佳答案 使用EXTR_PREFIX_IF_EXISTS时,如果变量不存在,则也不会创建带前缀的版本。在这个例子中:functiontest(){$a=12345;extract(array('a'=>1,'b'=>2,'c'=>3),EXTR_PREFIX_IF_EXISTS,'my_

regex - 用 php preg_replace 只替换一次字符串

我需要一个replacestringonce函数,我相信preg_match可能是我最好的选择。我正在使用这个,但由于使用的动态性,有时这个函数表现得很奇怪:functionstr_replace_once($remove,$replace,$string){$pos=strpos($string,$remove);if($pos===false){//Nothingfoundreturn$string;}returnsubstr_replace($string,$replace,$pos,strlen($remove));}现在我正在采用这种方法,但遇到了下面列出的错误...。我正在