微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP正则表达式删除字符后的所有内容

所以我看到一些文章有点太深,所以我不确定从他们制作的正则表达式语句中删除什么.

我基本上得到了这个

foo:bar一直到另一个foo:bar; seg98y34g.?sdebvw h segvu(真的很棒)

我需要一个PHP正则表达式来删除冒号后的所有东西.第一部分可以是任何长度(但它从不包含冒号.所以在上述两种情况下我都会结束

foo和anotherfoo

在做了类似psuedo-code这个可怕的例子之后

$string = 'foo:bar';
$newstring = regex_to_remove_everything_after_":"($string);

编辑

在发布之后,explode()的运行是否足够可靠?就像是

$pieces = explode(':','foo:bar') 
$newstring = $pieces[0];
explode会做你想要的,但是你可以使用 current做一步.
$beforeColon = current(explode(':',$string));

我不会在这里使用正则表达式(这涉及到一些相对简单的动作在幕后工作),也不会将strpossubstr一起使用(因为这将有效地遍历字符串两次).最重要的是,这为立即阅读代码的人提供了“啊,是的,这就是作者想要做的!”而不是,“等等,再次发生了什么?”

唯一的例外是,如果您碰巧知道字符串过长:我不会爆炸1 Gb文件.代替:

$beforeColon = substr($string,strpos($string,':'));

我也觉得substr不太容易阅读:在当前(爆炸你可以立即看到分隔符,没有额外的函数调用,只有一个变量事件(这使得它不容易出现人为错误).基本上我读取当前(爆炸为“我正在接受此字符串之前的任何事件的第一次事件”而不是substr,这是“我从0位置开始并继续直到此字符串.”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐