草庐IT

regex_replace

全部标签

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 str_replace 不适用于特殊字符

为什么这没有按预期工作:echostr_replace("é","é","FédérationCamerounaisedeFootball");结果:"FédérationCamerounaisedeFootball"我希望有:"FédérationCamerounaisedeFootball" 最佳答案 你做错了。这个字符串没有错误,需要替换,它只是用UTF-8编码。您所要做的就是utf8_decode('FédérationCamerounaisedeFootball')。更新:您看到FédérationCamerou

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 - PHP 中 "filter_var"和 "preg_replace"之间的后端区别是什么?

我有来自数据库(非常受控的输入)的数字,它们前后都有下划线。它们是这样存储的:_51__356_它们不会以任何其他格式存储,但有时我只需要从中获取数字。我选择使用其中之一$x=filter_var($myNumber,FILTER_SANITIZE_NUMBER_INT);或$y=preg_replace("/[^0-9]/","",$myNumber);我不确定后端两者之间的细微差别,但它们都能产生我所需要的(无论如何,我是这么认为的),所以我使用哪个并不重要。使用这些选项的优缺点是什么?(例如,是否有人使用数组或其他我可能需要了解的奇怪事物?有人使用了太多资源吗?)

PHP 强制 str_replace 只替换一个结果

这个问题在这里已经有了答案:Usingstr_replacesothatitonlyactsonthefirstmatch?(23个回答)关闭7年前。这是完美的工作:$replaceLyrics=str_replace('story','_____','ThestoryofmylifeItakeherhomeIdriveallnighttokeepherwarmandtimeIsfrozen(thestoryof,thestoryof)');echo$replaceLyrics;输出:The_____ofmylifeItakeherhomeIdriveallnighttokeepher

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 str_replace 空格的任意组合

我想确保字符串中的/字符始终在两边填充一个空格。对于PHP,我目前使用的是str_replace,但我不能保证所有情况都适用于任意数量的空格。$original="Yes/No";echostr_replace("/","/",$original)."\n";echostr_replace("/","/",$original)."\n";echostr_replace("/","/",$original)."\n";我知道我传递给str_replace函数的第一个参数/参数是错误的,因为它没有考虑周围的字符。下面是我想要实现的一些例子:OriginalDesired==========

php - 如何使用 preg_replace 用数组中的字符串替换子字符串? (PHP)

我有一个包含这些值的数据数组:Array([id]=>1[myid]=>9[date]=>2014-01-30[user]=>17[reason]=>sometexthere...)这个字符串包含引用数据数组索引的数字:$columns='(0)as"id",(1)as"myid",(2)as"date",(3)as"user",(4)as"reason"';是否可以更改括号中的数字,包括将括号中的数字更改为数组中的适当值?我知道如何使用(string)preg_replace((array)$patterns,(array)$replacements,(string)$subject

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

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