如何在汉字前添加<br>,如果中文的用词与普通文本相结合。
<?php
$string = 'Hello World 自立合作社';
/*
this is what I tried:
preg_match('/\\p{Han}/u', $string, $matches);
print_r($matches)
*/
?>输出:
Hello World</br>自立合作社发布于 2013-07-14 13:35:29
这肯定不是最好的解决方案,但一种方法是通过[\x00-\x7F]+匹配一串ASCII字符,然后是一个非ASCII序列(与^否定的相同模式)。它并没有专门针对中国,但由于中国Unicode字符的变化范围,这是一个棘手的问题。
$string = 'Hello World 自立合作社';
// Capture ASCII sequence into $1 and non-ASCII into $2
echo preg_replace('/([\x00-\x7F]+)([^\x00-\x7F]+)/', '$1<br/>$2', $string);
// Prints:
// Hello World
// 自立合作社http://codepad.viper-7.com/1kqpOx
实际上,这是一个通过\p{Han}专门针对汉字的改进版本。$2捕获还包括用于空格的\s。
// This matches any non-Chinese in $1 followed by Chinese (and whitespace) in $2
echo preg_replace('/([^\p{Han}]+)([\p{Han}\s]+)/', '$1<br/>$2', $string);发布于 2013-07-14 14:14:07
我不是中国人,但我希望这能帮上忙。
在使用php时,可以将preg_replace与展望未来建设结合使用。它将将所有空白字符(在汉字之前的)替换为。
$string = 'Hello World 自立合作社';
$pattern = "/\\p{Z}(?=\\p{Han})/ui"; // matches a white space before Chinese character.
$brStr = preg_replace($pattern, "<br>", $string);
echo $brStr;我不知道会不会与所有汉字匹配,所以请查看关于unicode字符这里的更多信息
希望这能有所帮助。祝你好运!)
https://stackoverflow.com/questions/17639802
复制相似问题