草庐IT

php - 使用 preg_match 查找所有 PHP 变量

如何使用preg_match找到所有PHP变量。我制作了以下正则表达式:$string='Hallo$var.blabla$var,$iamavar$varvarvargfgdjfjdfgjhfd$variable';$instring=array();preg_match_all('/\$(.*?)/',$string,$instring);print_r($instring);我只是不明白正则表达式是如何工作的。 最佳答案 \$(.*?)不是匹配PHP变量名的正确正则表达式。这样的aregularexpressionforaVa

php - 正则表达式在第一个换行符处拆分字符串

我想在第一个换行符处拆分一个字符串,而不是第一个空行'/^(.*?)\r?\n\r?\n(.*)/s'(第一个空行)例如,如果我有:$str='2099test\nAreyousureyouwanttocontinue\nsomeotherstringhere...';match[1]='2099test'match[2]='Areyousureyouwanttocontinue\nsomeotherstringhere...' 最佳答案 preg_split()有一个限制参数,您可以利用它。你可以简单地做:$lines=preg_

php - 如何检查字符串是否完全匹配正则表达式模式?

我正在为我客户的产品销售网站编写注册脚本。我目前正在处理引用ID输入区域,我想确保引用ID在付款方式的正确参数范围内引用ID看起来像这样:XXXXX-XXXXX-XXXXX我正在尝试使用此RegEx模式来匹配它:/(\w+){5}-(\w+){5}-(\w+){5}/这与它完美匹配,但它也与XXXXX-XXXXX-XXXXXXXXXX匹配或者至少它在那里找到了一个匹配项。我希望它确保整个字符串匹配。我对RegEx不太熟悉我该怎么做? 最佳答案 您需要使用开始和结束anchor。或者,如果您不需要捕获这些组,则可以省略括号。此外,+{

java - 正则表达式-如何在第一次出现字符时停止

我正在尝试从标签中提取src值,到目前为止,我似乎能够提取src值和字符串中最后一个引号之间的字符串字符串:例如在PHP中:preg_match('/src=\"(.*)\"/',$row->find('aimg',0),$matches);if($matches){echo$matches[0];}打印出来src="http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif"width="89"height="31"alt=""但我真正想要打印的是...src="http://i.bookfinder

php - 从字符串中删除无用的段落标签

如果我有这样的字符串:  blahblahblahthisissomerealcontent 我怎样才能把它变成:blahblahblahthisissomerealcontent正则表达式需要获取 和空格。 最佳答案 $result=preg_replace('#]*>(\s| ?)*#','',$input);这不会在输出中捕获文字nbsp字符,但这种情况很少见。由于您处理的是HTML,如果这是用户输入,我可能建议使用HTMLPurifier,它也将处理XSS漏洞。您希望在那里删除空p标签

php - addslashes() for preg_replace() 和 co.?

如何转义传入数据,以便在preg_replace()和consorts中将其用作模式?例如,我需要匹配这个字符串:/vorschau/显然,我需要对“v”进行转义,否则会出错。我在文档中找不到任何内容。是否有某种addslashes()或表达式中的解决方法? 最佳答案 如果我没有正确理解你的问题,你正在寻找preg_quote:stringpreg_quote(string$str[,string$delimiter=NULL])preg_quote()takesstrandputsabackslashinfrontofeveryc

php - 没有结束分隔符 '/' 发现错误

我已经调整了一个小脚本来检查反向链接。但是我一直收到错误警告:preg_match()[function.preg-match]:第17行未找到结束分隔符“/”。About\(.*?)\',$v,$s);$s_number=explode(".",$s[1]);$i=0;if($s[1]!=0){return$s[1];}else{return($r[1])?$r[1]:'0';}}echo"Googlebacklink=".google_backlink($url)."";?>有什么问题preg_match('/About\(.*?)\',$v,$s);

php - 我可以使用什么正则表达式来验证 0 到 255 之间的数字?

我想验证0-255范围内的数字我有这个表情'/^([0-1]?[0-9]?[0-9])|([2][0-4][0-9])|(25[0-5])$/'但这接受任何数字...这有效:'/(^[0-1]?[0-9]?[0-9]$)|(^[2][0-4][0-9]$)|(^25[0-5]$)/'为什么每个选项都必须有^和$?编辑:我有它,但我不能回答我的问题,所以-^和$比|有更高的优先级,所以/^(...)$/有帮助 最佳答案 注意:@alex'sanswer是要走的路。使用正则表达式验证数字范围就像使用手提钻抓苍蝇一样。尽管如此,我还是想为

php - 正则表达式(在 PHP 中)匹配 & 不是 HTML 实体

目标是:用&替换所有独立的符号但不要替换那些已经是HTML实体一部分的那些,例如 。我想我需要一个用于PHP的正则表达式(最好是用于preg_函数),它只匹配独立的&符号。我只是不知道如何使用preg_replace做到这一点。 最佳答案 PHP的htmlentities()对此有double_encode参数。如果你想在正则表达式中做类似的事情,那么否定断言就很有用了:preg_replace('/&(?!(?:[[:alpha:]][[:alnum:]]*|#(?:[[:digit:]]+|[Xx][[:xdigit:]]+))

php - 此正则表达式匹配尚未编码的符号的任何陷阱

在PHP中,我想对尚未编码的符号进行编码。我想出了这个正则表达式/&(?=[^a])/到目前为止它似乎运行良好,但鉴于我不是一个正则表达式专家,我想问一下是否可以在这个正则表达式中看到任何潜在的陷阱?本质上它需要将&转换为&但将&保留在&中(以免得到&)谢谢更新感谢您的回答。看来我的思考不够广泛,无法涵盖所有​​基础。这似乎是正则表达式本身的一个常见陷阱(必须考虑所有可能使您的正则表达式出现误报的可能性)。它确实打败了我原来的str_replace('&','&',$string);:) 最佳答案 更好的是negativel