草庐IT

PHP preg_match_all 正则表达式从 css 获取像素值( "px")

我正在寻找与PHP的preg_match_all()函数一起使用的正则表达式,它将为我提供CSS文件中的所有px值。例如,如果使用下面的css,那么预期结果将是一个数组:array("11px","0.45px","11.0005px","1.1px","888.888px")$pattern字符串是我目前所拥有的——但是它似乎没有用。我尝试使用的逻辑是:小数点前最多4位,小数点符号可选,小数点后可选,最多4位,后面跟“px”。$pattern="/([0-9]{1,4}\.*[0-9]{1,4}*px)/";$css='.some_class{font-size:11px;margi

使用正则表达式将搜索短语或搜索词替换为 <b> 匹配 </b> 的 php 代码

我需要根据“火与水”这样的短语来突出显示我的网站内容。我需要输入在短语周围完全存在的地方进行标记。如果单词单独出现(不是完整形式),他们应该得到标签。例如,如果内容是:Theworldismadeofthreeelementsfireandwaterandair.Fireishotandwateriswet.结果应该是:Theworldismadeofthreeelements``fireandwater````and``air.``Fire``ishot``and````water``iswet.我尝试使用:$output=preg_replace("/("fireandwater)

php - 单词与单词的分离(正则表达式和 PHP)

我创建了以下正则表达式代码来查找和分隔单词中的首字母大写字母。$string="helloworldB.Whatareyoudoingnow";$string="helloworldB.Whatareyoudoingnow";//variant2$clean=preg_replace('/[a-z0-9]+(?:[A-Z].+)/','?',$string);存在正则表达式错误。你能帮帮我吗?Demo 最佳答案 在您的正则表达式中,点不会被转义并匹配换行符以外的任何字符。此外,(?:[A-Z].+)是一个非捕获组,它的模式是cons

php - 如何使用正则表达式检查字符串是否为正确的数组格式?

我想检查字符串是否是正确的数组结构,例如:"[0,1,2,3,4,5,6,7,8,9]"我想要的正则表达式应该匹配开始[和结束]的方括号,并且在方括号内,它应该只包含数字0-9和逗号,。与上面相同即数字数组,但它是一个字符串。我尝试了以下方法:/\[\d+\]/但它不适用于逗号,。已编辑:我从POST方法接收[0,1,2,3,4,5,6,7,8,9]"作为字符串。 最佳答案 显然根本不是正则表达式,但您最终会得到所需的整数数组,并且没有运行时错误。if(is_array($array=json_decode($string))&&a

php - 使用正则表达式匹配 ?但不是\?

我有一个PHP正则表达式,它在解析一些奇怪的遗留客户端模板方面一直运行良好,直到最近我们发现模板表达式中包含转义问号(\?)。我的正则表达式功能不够强大,无法将我虚弱的面条包裹在消极的展望或一些技术胡言乱语中,因此,我们将不胜感激正确方向的提示或观点。我的PHP:preg_match_all("/\{\{IF(.*)\?(.*):(.*)\}\}/U",$template,$m,PREG_SET_ORDER);好吧,发这个问题的时候有点不知所措。请允许我将其置于适当的上下文中。模板代码如下所示:{{IFVAR?"SHOW:THIS?":"SHOW{{ELSE}}"}}应该解析为:if(

php - 匹配交替子模式的正则表达式模式

我正在尝试设计一个正则表达式模式(在PHP中),它将允许两个子模式的任意交替。因此,如果模式A匹配一组三个字母,模式B匹配一组2个数字,那么所有这些都可以:aaaaaa66bbb6667abc12abc34def56ghi78jkl我不介意哪个子模式开始或结束序列,只是在第一次匹配之后,子模式必须交替。我完全被这个难住了-任何建议将不胜感激! 最佳答案 这是一个通用的解决方案:^(?:[a-z]{3}(?![a-z]{3})|[0-9]{2}(?![0-9]{2}))+$这是一个简单的交替——三个字母或两个数字——但否定先行确保相同

php - 匹配两个标签之间所有内容的正则表达式

我正在尝试使用正则表达式在PHP中捕获以下内容:/*Name:TestDescription:mytest*/我试过这里的代码:MatcheverythinginbetweentwotagswithRegularExpressions?但它没有捕获新行。编辑:我使用了以下在单行上工作的正则,但它一看到换行符就停止工作EDIT2:我想包括我在一大段有很多换行符的文本上运行这个脚本。我确定我们需要使用*,因为我不确定换行符出现的次数。/*(.*?)*/TIA 最佳答案 好的。默认情况下,正则表达式中的点.不匹配换行符。您需要/s修饰符(

php - 正则表达式:在不在文本区域中的字符串中查找换行符

嘿,所以我正在寻找一个正则表达式,它允许我基本上用任何东西(例如“xxx”)替换换行符,但前提是换行符不在textarea标签内。例如,以下内容:abcdefgcuriousgeorgehappy会变成:abcdxxxefgxxxcuriousgerogexxxhappy有人知道我应该从哪里开始吗?我在这里有点无能为力:(感谢您提供的任何帮助。 最佳答案 我知道了,但你不会喜欢的。;)$result=preg_replace('~[\r\n]++(?=(?>[^匹配换行符后,先行扫描,消耗任何不是左尖括号的字符,或任何不是开头的左尖

php - 正则表达式等于除某些条件外的条件

我在PHP中编写了以下正则表达式以在preg_replace()中使用。/\b\S*(.com|.net|.us|.biz|.org|.info|.xxx|.mx|.ca|.fr|.in|.cn|.hk|.ng|.pr|.ph|.tv|.ru|.ly|.de|.my|.ir)\S*\b/i到目前为止,这个正则表达式非常有效地从字符串中删除了所有URL(尽管我确信我可以写出更好的)。我需要能够添加来自特定域的排除项。所以伪代码看起来像这样:IFstringcontains:.comor.netor.bizetc...anddoesnotcontain:foo.comTHENexecute

php - 必须有一个更好的正则表达式

我正在编写一个小型CMS,我正在尝试将标题转换为带有破折号的URL段。我知道我需要做几件事,而且我已经完成了所有工作,但我就是不喜欢它。问题似乎是,如果末尾有任何特殊字符,我需要在将其输入数据库之前将其删除。我能弄清楚这样做的唯一方法是在一个语句中执行2个preg_replace。所以它看起来像这样:preg_replace("/\-$/","",preg_replace('/[^a-z0-9]+/i',"-",strtolower($title)));然后把它转过来:(thisisatitle!!!)))**thatis(strange))进入这个:this-is-a-title-t