【问题标题】:How to remove empty arrays from preg_split result?如何从 preg_split 结果中删除空数组?
【发布时间】:2013-09-13 05:09:59
【问题描述】:

举个例子,我写了很多正则表达式:

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) ""
}

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

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

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

【问题讨论】:

  • 因为我有大量的正则表达式要写,所以我想缩短时间。

标签: php regex arrays


【解决方案1】:

只需使用标志PREG_SPLIT_NO_EMPTY

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

doc

【讨论】:

  • 好的,“-1”表示无限制字符串,并且 PREG_SPLIT_NO_EMPTY 如果设置了此标志,则只会返回非空部分。谢谢!
猜你喜欢
  • 2019-07-09
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
相关资源
最近更新 更多