Можно ли использовать preg_split для разбиения строки на массив, а также для удаления пробелов? - PullRequest
0 голосов
/ 05 июля 2019

Существует ли какое-либо регулярное выражение, которое будет игнорировать все пробелы при разбиении на все остальные символы?

$phrase = 'asdf asdf';
$result = preg_split('//', $phrase, -1, PREG_SPLIT_NO_EMPTY);
array(9) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "s"
  [2]=>
  string(1) "d"
  [3]=>
  string(1) "f"
  [4]=>
  string(1) " " // this should be excluded
  [5]=>
  string(1) "a"
  [6]=>
  string(1) "s"
  [7]=>
  string(1) "d"
  [8]=>
  string(1) "f"
}

1 Ответ

1 голос
/ 05 июля 2019

Если вы планируете разбить строку на символы с регулярным выражением, избегая пробелов в результате, безопаснее использовать подход с совпадением:

if (preg_match_all('~\X(?<!\s)~u', $s, $m)) {
    print_r($m[0]);
}

Выражение ~\X(?<!\s)~u соответствует любой графеме Unicodeно не если это пробел.

См. PHP демо :

$s = "प्रमुख समाचार";
if (preg_match_all('~\X(?<!\s)~u', $s, $m)) {
    print_r($m[0]);
} // => Array ( [0] => प् [1] => र [2] => मु [3] => ख [4] => स [5] => मा [6] => चा  [7] => र )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...