search

Home  >  Q&A  >  body text

php - preg_split('/(?<!^)(?!$)/u', $string ) 这个正则为啥能够split多字节字符

function mb_str_split( $string ) { 
    # Split at all position not after the start: ^ 
    # and not before the end: $ 
    return preg_split('/(?<!^)(?!$)/u', $string ); 
} 

$string = '火车票';
$charlist = mb_str_split( $string );

print_r( $charlist );
?>

Prints:

Array
(

[0] => 火 
[1] => 车 
[2] => 票 

)


是PHP手册里面的一个例子,其实已经有注释了。 自己知道要区分多字节正则表达式需要加上 u 修饰符, 但是对里面的正则代表的含义不是太懂,(?<!^)(?!$) 正则具体匹配到的是那些字符?

迷茫迷茫2773 days ago466

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-11 10:01:02

    是环视,匹配位置的用法~

    reply
    0
  • Cancelreply