草庐IT

PREG_REPLACE_EVAL

全部标签

PHP preg_match 只返回第一个匹配项

第一个问题是:我正在使用http://www.phpliveregex.com/检查我的正则表达式是否正确,它找到了多个匹配行。我正在做这个正则表达式:$lines=explode('\n',$text);foreach($linesas$line){$matches=[];preg_match("/[0-9]+[A-Z][a-z]+[A-Z][a-z]+S[0-9]+\-[0-9]+T[0-9]+/uim",$line,$matches);print_r($matches);}在$text上看起来像这样:http://pastebin.com/9UQ5wNRu问题是打印的匹配项只有一

PHP preg_match_all 搜索和替换

我已经尝试了大约一百万种不同的正则表达式,但我就是无法理解这个(诚然,我无法掌握很多正则表达式)。在我的文本中我有这样的变量:{{$one}}{{$three.four.five}}{{$six.seven}}我有一个包含所有替换项的数组('one'的索引是'one'等),但有些可能会丢失。我想从数组中替换它(如果存在),如果不存在则保留文本。我可以使用什么正则表达式来预匹配下面代码段中$text中的所有变量,在适当的地方从$replace替换并回显到浏览器?'1','testc.testa'=>'2','testf'=>'3');$text='{{$testa.testb.testc

php - 什么情况需要使用 eval() 因为别无选择?

我知道出于速度和安全原因,应该在JavaScript中避免使用eval。但就PHP而言,很少有人提到安全性。更常见的情况是,由于随意使用eval,您的程序运行速度低于预期。在什么特定情况下你应该使用eval因为没有其他方法可以解决它?为清楚起见:我们不是在谈论用户提供的数据。因此,问题集中在eval的纯粹且完全受控的服务器端有效使用上。 最佳答案 eval的安全问题——在PHP中使用eval执行代码与在Javascript中是一样的:如果你评估一些代码,你必须确定它来自哪里,以及它是什么包含。安全隐患甚至可能更大,因为PHP可以访问

php - 删除除数字和减号以外的所有内容 PHP preg_replace

我现在有preg_replace('/[^0-9]/s','',$myvariable);例如输入是GB-3。我当前的行为我提供了值3。我希望能够保留负号,以便该值显示-3而不是当前输出的3。 最佳答案 试试这个:preg_replace('/[^\d-]+/','',$myvariable);正则表达式分解://两边都是正则分隔符——里面的一切都是正则[]表示这是字符类。Ruleschangeincharacterclass^里面的字符类代表“不”。\d是[0-9]的简写,区别在于字符类内外均可使用-将匹配减号+最后是量词,表示匹

php - Perl 相当于 PHP 的 preg_callback

我们在Perl中有一个preg_callback等价物吗?假设我想匹配一些东西并将其替换为用匹配的东西调用的函数的返回值。 最佳答案 使用s///e-评估修饰符,您可以在第二部分放置任意perl代码。$x="thisisatest";$x=~s/(test)/reverse($1)/eg;print$x;//thisisatset引用:http://perldoc.perl.org/perlretut.html#Search-and-replace 关于php-Perl相当于PHP的pr

php - mb_str_replace()... 很慢。有什么选择吗?

我想确保我正在运行的一些字符串替换是多字节安全的。我在网上找到了一些mb_str_replace函数,但它们很慢。我说的是在通过它传递500-900字节后增加20%。有什么建议吗?我正在考虑使用preg_replace,因为它是native的并已编译,所以它可能会更快。如有任何想法,我们将不胜感激。 最佳答案 如前所述there,str_replace在utf-8上下文中使用是安全的,只要所有参数都是utf-8有效的,因为它不会是两个多字节编码字符串之间的任何模糊匹配。如果您检查输入的有效性,则无需寻找其他函数。

php - 如何使用 preg_replace 从某个字符中删除任何内容,直到字符串结束?

嗨我需要删除“_”中的所有字符,直到字符串结尾。我试过:$string='merry_christmas';$string=preg_replace('/_*/','',$string);echo$string;//Ineedittobe:'merry'...但是没有。想法是删除下划线字符'_'及其右侧的所有字符。谢谢 最佳答案 下面的会快很多;$str='merry_christmas';$str=substr($str,0,strpos($str,'_')); 关于php-如何使用p

php - 使用 preg_match 的电子邮件地址无效

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtovalidateanemailinphp5?我已使用以下代码确保注册时提供的电子邮件地址有效。(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$email))我输入了一个标准的电子邮件地址,例如yourname@company.co.uk它被标记为无效。谁能帮我解释为什么会这样?

php - preg_match : number-alphabets and commas only

如何编写仅匹配数字字母和逗号的正则表达式?我在下面提出了这个,但它不起作用-它也接受其他标点符号!#checkformatchesnumber-alphabetsandcommasonlyif(!preg_match('/([a-zA-Z0-9]|[a-zA-Z0-9\,])/',$cst_value)){$error=true;echo'';}非常感谢,刘 最佳答案 你想要:/^[a-zA-Z0-9,]+$/您需要字符串anchor的开始^和结束$。如果没有它们,正则表达式引擎将在字符串中寻找这些字符中的任何一个,如果找到一个,它

php - 使用 php 的 preg 替换从字符串中删除反斜杠\

我想使用phppregreplace单独删除反斜杠。例如:我有一个字符串看起来像$var="Thisisthefor\testingandiwanttoaddthe#andremove\slashalonefromthegivenstring";如何使用phppreg_replace单独从相应的字符串中删除\ 最佳答案 当str_replace更容易时,为什么要使用preg_replace。$str=str_replace('\\','',$str); 关于php-使用php的preg替