如何从 preg_split 结果中删除空数组?

Mar*_*vac 6 php regex arrays

例如,我有大量的正则表达式,就像我写的一样简单:

php > var_dump( preg_split('/[:reg\s{}]+/', ':reg{/^[a-zA-Z]*$/}') );
array(3) {
  [0] =>
  string(0) ""
  [1] =>
  string(13) "/^[a-zA-Z]*$/"
  [2] =>
  string(0) ""
}
Run Code Online (Sandbox Code Playgroud)

我想删除空数组[0] => string(0) "",例如结果应该是:

php > var_dump( preg_split('????', ':reg{/^[a-zA-Z]*$/}') );
array(3) {
  [0] =>
  string(13) "/^[a-zA-Z]*$/"
}
Run Code Online (Sandbox Code Playgroud)

我知道array_filter()删除空数组时的函数,但我只想使用正则表达式

Tot*_*oto 7

只需使用标志PREG_SPLIT_NO_EMPTY

preg_split('/[:reg\s{}]+/', ':reg{/^[a-zA-Z]*$/}', -1, PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)

查看文档

  • 好的,“-1”表示没有限制字符串,并且 PREG_SPLIT_NO_EMPTY 如果设置此标志,则仅返回非空片段。谢谢你! (2认同)