Intereting Posts
PHP: как вручную / программно запускать cron-скрипты Каков наилучший способ создания случайного хэша / строки? Уничтожить сеанс PHP при закрытии Uncaught ReflectionException: Журнал классов не существует Laravel 5.2 MongoDB / PHP .. Как писать отдельные запросы? как изменить размер изображения с URL-адреса и уменьшить размер изображения Имеет ли PHP эквивалент синтаксиса понимания списка Python? Является ли плохая практика для модели называть себя внутри себя? <tbody> сбой в PHP Простой HTML DOM-парсер генерация случайных и уникальных подмножеств Найти всю строку, содержащую слово с регулярными выражениями php Как реализовать политику безопасности контента? лучше ли убеждать / закодировать пользовательский ввод, прежде чем хранить его в базе данных или сохранить его, как он есть в базе данных, и избежать его при извлечении? Подключение к базе данных с ODBC приводит к предупреждению и непечатанию Elasticearch-Php-Mysql datetime фильтр и запрос

Как отделить буквы и цифры от строки в php

У меня есть строка, которая представляет собой комбинацию букв и цифр. Для моего приложения я должен отделить строку с буквами и цифрами: ex: Если моя строка «12jan», я хочу, чтобы «12» «jan» отдельно ..

Вы можете использовать preg_split для разделения строки в точке, которой предшествует цифра, а за ней следуют буквы:

 $arr = preg_split('/(?<=[0-9])(?=[az]+)/i',$str); 

Код в действии

 <?php $str = '12jan'; $arr = preg_split('/(?<=[0-9])(?=[az]+)/i',$str);                                print_r($arr); 

Результат:

 Array ( [0] => 12 [1] => jan ) 
 $numbers = preg_replace('/[^0-9]/', '', $str); $letters = preg_replace('/[^a-zA-Z]/', '', $str); 
 $string = "12312313sdfsdf24234"; preg_match_all('/([0-9]+|[a-zA-Z]+)/',$string,$matches); print_r($matches); 

это может работать намного лучше

 preg_match_all('/^(\d+)(\w+)$/', $str, $matches); var_dump($matches); $day = $matches[1][0]; $month = $matches[2][0]; 

Конечно, это работает только тогда, когда ваши строки точно соответствуют описанию «abc123» (без добавления пробелов или добавления).

Если вы хотите получить все числа и символы, вы можете сделать это с помощью одного регулярного выражения.

 preg_match_all('/(\d)|(\w)/', $str, $matches); $numbers = implode($matches[1]); $letters = implode($matches[2]); var_dump($numbers, $letters); 

Видеть это!

Это работает для меня в соответствии с моим требованием, вы можете редактировать по своему усмотрению

 function stringSeperator($string,$type_return){ $numbers =array(); $alpha = array(); $array = str_split($string); for($x = 0; $x< count($array); $x++){ if(is_numeric($array[$x])) array_push($numbers,$array[$x]); else array_push($alpha,$array[$x]); }// end for $alpha = implode($alpha); $numbers = implode($numbers); if($type_return == 'number') return $numbers; elseif($type_return == 'alpha') return $alpha; }// end function 

Попробуй это :

 $string="12jan"; $chars = ''; $nums = ''; for ($index=0;$index<strlen($string);$index++) { if(isNumber($string[$index])) $nums .= $string[$index]; else $chars .= $string[$index]; } echo "Chars: -$chars-<br>Nums: -$nums-"; function isNumber($c) { return preg_match('/[0-9]/', $c); } 

Работая с PHPExcel, такие операции являются общими. #Tapase ,. Вот preg_split, который хочет, чтобы вы захотели с пространством внутри строки.

 <?php $str = "12 January"; $tempContents = preg_split("/[\s]+/", $str); foreach($tempContents as $temp){ echo '<br/>'.$temp; } ?> 

Вы можете добавить запятую рядом с s для разделенной запятой. Надеюсь, это поможет кому-то. Антон К.

 <?php $data = "#c1"; $fin = ltrim($data,'#c'); echo $fin; ?>