preg_split每个字符,但如果是引用则不要拆分

时间:2017-07-09 12:30:25

标签: php arrays regex utf-8 preg-split

我使用以下代码将我的UTF-8字符串拆分为字符:

$characters = preg_split('//u', $word, -1, PREG_SPLIT_NO_EMPTY);

在某些情况下,角色后面可能只有一个引号。例如:hel'lo。我想把这个引用与之前的角色保持一致。

使用上面的正则表达式,我的数组是:

Array
(
    [0] => h
    [1] => e
    [2] => l
    [3] => '
    [4] => l
    [5] => o
)

我希望数组为:

Array
(
    [0] => h
    [1] => e
    [2] => l'
    [3] => l
    [4] => o
)

我该怎么办? 谢谢!

(单引号可以在字符串的开头,在它的末尾和它的中间)。

2 个答案:

答案 0 :(得分:0)

而不是split,您可以使用

执行preg_match_all
'?\p{L}'?

即。 Unicode字母前后的可选'

preg_match_all("/'?\\p{L}'?/u", $str, $matches);

RegEx Demo

答案 1 :(得分:0)

使用!来阻止分割

$characters = preg_split("/(?!')/u", $word, -1, PREG_SPLIT_NO_EMPTY);