Php 如何使用preg_match获得字符串的结尾?

Php 如何使用preg_match获得字符串的结尾?,php,string,preg-match,Php,String,Preg Match,我得到了这个字符串: from:100000238267321=to:100000238267322=somethingelse: hey james, heard the news, mike is returning tomorrow! 这个preg_match命令: #(?P<from>(?:\w|\s)+):(?P<idfrom>\d+)=(?P<to>(?:\w|\s)+):(?P<toid>\d+)=(?P<somethinge

我得到了这个字符串:

from:100000238267321=to:100000238267322=somethingelse: hey james, heard the news, mike is returning tomorrow!
这个preg_match命令:

#(?P<from>(?:\w|\s)+):(?P<idfrom>\d+)=(?P<to>(?:\w|\s)+):(?P<toid>\d+)=(?P<somethingelse>(?:\w|\s)+):(?P<somethingelsetxt>(?:\w|\s)+)#
我能做什么?

您可以使用以下命令获取最后一个数组值:

$string = 'from:100000238267321=to:100000238267322=somethingelse: hey james, heard the news, mike is returning tomorrow!';
$value = explode(':',$string);
echo $value[3];

更新 要解决正则表达式问题,请将“|,””添加到SomeThingelsTXT正则表达式中,如下所示:

(?P<somethingelsetxt>(?:\w|\s|,)
(?P(?:\w |\s |,)

这也会得到逗号。你可以包括一个“|!”如果您愿意,也可以。

使用
*$
获取从当前点到字符串末尾的所有内容。确保设置了
多行
修饰符,以便
匹配换行符,除非您确定不会有任何换行符。

更新也起作用,但我将保留分解,因此如果用户输入不同的字符,如“*”或“&”等。如果
somethingelse:
之后的文本始终位于末尾,则可以将正则表达式的最后一段替换为
*
。它表示“字符串的结尾”。a会更好,还是它的行为相同?会使*不可见。在这种情况下,
不会有任何区别,因为“字符串结束前的所有字符”和“字符串结束前尽可能少的字符”是相同的。
(?P<somethingelsetxt>(?:\w|\s|,)