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

前端之家收集整理的这篇文章主要介绍了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位置开始并继续直到此字符串.”

猜你在找的PHP相关文章