草庐IT

PREG_REPLACE_EVAL

全部标签

php - 如何使用 `preg_match()` 匹配用户名

我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字符串开头和结尾的字母或数字接受句点、破折号、下划线、字母、数字长度必须在5-20个字符之间preg_match('/^[a-zA-Z0-9]+[.-_]*[a-zA-Z0-9]{5,20}$/',$username) 最佳答案 将需求分解成更小的部分,您会发现它变得容易得多:第一个字符必须是1个字母或数字中间字符必须是句点、破折号、下划线、字母或数字最后一个字符必须是字母或数字由于第一段和最后一

php - preg_match() 什么时候做 : Unknown modifier error occur?

\\$DigitalSignaturehavefullnamevaluepassed$SignatureMatch='/'.strtolower($NameFirst.''.$NameLast).'$/';if(true==preg_match($SignatureMatch,strtolower($DigitalSignature))){$boolIsValid=true;}我正在使用此代码来精确匹配名字和姓氏与数字签名的匹配。但这会在生产(实时)错误日志中向我报告错误。preg_match():Unknownmodifier'b'我无法重现此错误。我怎样才能首先得到这个错误。以及如

php - preg_replace 没有按预期工作

我写了一个简单的函数,它接受一段文本,从中提取url,然后用替换所有url。标记他们。例如http://site.com应该变成http://site.com代码:functionparseUrls($string){$string=trim($string);$pattern='%\bhttp[s]?://[A-z0-9/\.\-_]+%i';$replacement='$1';$string=preg_replace($pattern,$replacement,$string);return$string;}但是,如果我将以下字符串作为输入传递:你好https://google.c

php - 用 Preg_replace 删除汉字?

我正在尝试从字符串中删除中文字符。试过了,但无法正常工作。它说:Warning:preg_replace()[function.preg-replace]:Compilationfailed:charactervaluein\x{...}sequenceistoolargeatoffset9inpreg_replace('/[^\x{4e00}-\x{9fa5}]+/','',$string)我怎样才能让它工作? 最佳答案 InUTF-8mode,"\x{...}"isallowed,wherethecontentsofthebra

php preg_replace 特定 html 注释标签之间的所有内容

我检查了其他答案,但似乎无法执行以下操作。请帮助某人:)我想删除中间的所有内容,包括特定的html注释HTML:SomeHTMLthatmuststaysomehtmlthatmustgoSomemoreHTMLthat'sgottastaythisalsoneedstogo因此之间的所有内容和并且评论本身需要去我的preg_replace模式(这显然是错误的):"/.*?/"结果应该是SomeHTMLthatmuststaySomemoreHTMLthat'sgottastay感谢您提前检查和回答:) 最佳答案 感谢@mlwaco

PHP preg_match 获取最后一项

我有一个包含项目列表的PHP字符串,我想获取最后一个。现实要复杂得多,但归结为:$Line='First|Second|Third';if(preg_match('@^.*|(?P.+)$@',$Line,$Matches)>0){print_r($Matches);}我希望Matches['last']包含“Third”,但它不起作用。相反,我让Matches[0]包含完整的字符串,没有其他内容。我做错了什么?请不要有变通办法,我可以自己做,但我真的很想将它与preg_match一起使用 最佳答案 你有这个:'@^.*|(?P.+

php - preg_split 和多种模式

我有以下使用正则表达式的php代码:$result_from_pull="T601092";if(preg_match("/^[A-Za-z0-9]{2,6}[0-9]{1,3}$/",$result_from_pull)){echo"Wefounda\"valid\"UFSkey.";}我要做的是将字符串分成两部分。第一部分匹配模式的开头,[A-Za-z0-9]{2,6},而第二部分匹配模式的结尾,[0-9]{1,3}。如何使用preg_split来完成此操作?可以在一个preg_split上完成,还是我应该同时使用两个或另一个函数? 最佳答案

php preg_match 不像在其他网络应用程序中那样工作

正在尝试解析以下元素的值:inputtype="hidden"name="csrf_token"value="VUNht8fnmxmJXJIMassWW8SAwWKNJ3SC8POA4FtSqEKhG1rcoB3ZNqcPqa615tPsF_hzW0l4zDjSEHJYMz9Ogw==">元素周围的区域如下所示:使用以下代码行:preg_match("/csrf_token.value=.(.+==).>/",$result,$output_array);$output_array留空,如http://www.phpliveregex.com/正则表达式是正确的。我做错了什么?

php - 为什么要同时使用 str_replace() 和 preg_replace()?

我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结

php - str_replace ('<' ) 可以保护我们免受用户注入(inject)代码的侵害吗?

好的,我有一些用户输入,我做了一个echostr_replace('我想知道,无论如何用户是否可以破坏此过滤器?最初我认为这个脚本非常安全,但在阅读了一些关于php、字符集和安全性的文章后我开始怀疑它的健壮性。 最佳答案 这取决于输入的最终位置。例如,如果在某个时候你最终得到了一个像这样构造的(糟糕的)模板......">alink然后有人可以通过简单地使用以下输入来注入(inject)代码:javascript:do_whatever()即使输出通常不会回显到href字段中,像这样..."href="http://www.goog