我有这样的字符串:
123 qwerty 6 foo bar 55 bar
我需要像这样做
123 qwerty
6 foo bar
55 bar
如何制作?
UPD: 我试过试试
$subject = "123 qwerty 6 foo 55 bar";
$pattern = '/[^0-9]/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
echo "<pre>";
print_r($matches);
但这对我不起作用。
答案 0 :(得分:3)
你可以用这个:
$text = '123 qwerty 6 foo 55 bar baz';
$result = preg_replace('/([0-9]+[^0-9]+)/i', '$1\n', $text);
这会查找至少一个数字,后跟至少一个不是数字的字符并添加换行符。
阅读更多abot:
答案 1 :(得分:2)
像这样:
$lineending= "\n";
$parts= explode(' ',$string);
$result= "";
for($i=0; $i<count($parts);){
$result .= $parts[$i];
while(!is_numeric($parts[$i]) && $i<count($parts)){
$result .= $parts[$i];
$i+= 1;
}
$result .= $lineending;
}
- )
答案 2 :(得分:0)
试试这个:
$subject = '123 qwerty 6 foo 55 bar';
$pattern = '/ (?=[\d]+)/';
$replacement = "\n";
$result = preg_replace( $pattern, $replacement, $subject );
print_r( $result );
产地:
123 qwerty
6 foo
55 bar
PHP演示:http://codepad.org/MNLgaySd
密钥位于正则表达式的“positive lookahead”,(?=...)
正则表达式演示:http://rubular.com/r/i4CdoEL9f4