我想分割这个字符串:
/ server hostname:port username:password
成:
Array ( [0] => hostname
[1] => port
[2] => username:password )
我不希望存储/ server。
主机名,端口,用户名和密码的长度各不相同。
我不确定我是否应该使用preg_split,匹配模式应该是什么?
由于
答案 0 :(得分:2)
爆炸字符串并拆分它的部分可以得到你需要的东西。请注意,下面的示例没有检查字符串实际上是否采用该格式。检查一下是明智的。
$str = '/server hostname:port username:password';
$bits = explode(" ",$str,3);
list($hostname,$port) = explode(':',$bits[1]);
list($username,$password) = explode(':',$bits[2]);
编辑以创建您需要的内容:
$str = '/server hostname:port username:password';
$bits = explode(" ",$str,3);
list($hostname,$port) = explode(':',$bits[1]);
$arr = array($hostname,$port,$bits[2]);
答案 1 :(得分:1)
我不会使用正则表达式,而是试试这个
$str="/server hostname:port username:password";
$arr=explode(" ",$str);
$newarr=array(explode(":",$arr[1])[0],explode(":",$arr[1])[1],$arr[2]);
Here是对它的测试
答案 2 :(得分:0)
参见explode功能,它将完成工作
答案 3 :(得分:0)
根据输入格式parse_url()可以选择。
答案 4 :(得分:0)
$str = '/server hostname:port username:pa sword';
if(preg_match("|/server (.+):(.+) ([^:]+:.+)|", $str, $m)){
print_r($m);
}