首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在汉字前加上“<br>”

在汉字前加上“<br>”
EN

Stack Overflow用户
提问于 2013-07-14 13:26:23
回答 2查看 176关注 0票数 1

如何在汉字前添加<br>,如果中文的用词与普通文本相结合。

代码语言:javascript
复制
<?php

$string = 'Hello World 自立合作社';

/*
this is what I tried:
preg_match('/\\p{Han}/u', $string, $matches);
print_r($matches)
*/

?>

输出:

代码语言:javascript
复制
Hello World</br>自立合作社
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-14 13:35:29

这肯定不是最好的解决方案,但一种方法是通过[\x00-\x7F]+匹配一串ASCII字符,然后是一个非ASCII序列(与^否定的相同模式)。它并没有专门针对中国,但由于中国Unicode字符的变化范围,这是一个棘手的问题。

代码语言:javascript
复制
$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

代码语言:javascript
复制
// 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);
票数 1
EN

Stack Overflow用户

发布于 2013-07-14 14:14:07

我不是中国人,但我希望这能帮上忙。

在使用php时,可以将preg_replace与展望未来建设结合使用。它将将所有空白字符(在汉字之前的)替换为。

代码语言:javascript
复制
$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字符这里的更多信息

也许这个也能帮上忙

希望这能有所帮助。祝你好运!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17639802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档