|
|
|
| В одной книге по PHP мне попалась вот такая конструкция:
<?php
preg_replace('/[^a-zA-Z]/i', '', $str)
?>
|
Вроде хороший и понятный пример регулярного выражения, но вот зачем здесь i, если и так написано: все, кроме строчных и заглавных букв?
Правильно ли я мыслю, что запись не совсем корректная? | |
|
|
|
|
|
|
|
для: hxt
(24.01.2011 в 09:54)
| | никакого нарушения нет.
Запись избыточная - да, но не некорректная. | |
|
|
|
|
|
|
|
для: Trianon
(24.01.2011 в 11:18)
| | То есть, можно было записать так:
<?php
preg_replace('/[^a-z]/i', '', $str)
?>
|
или вот так:
<?php
preg_replace('/[^a-zA-Z]/', '', $str)
?>
|
Значит я хоть что-то уже начал понимать в программировании, раз выявил избыточную запись :-) | |
|
|
|
|
|
|
|
для: hxt
(24.01.2011 в 11:33)
| | А можно извратиться и написать так:
<?php
preg_replace('/[\W\d_]/i', '', $str)
?>
|
| |
|
|
|
|
|
|
|
для: dima4321
(24.01.2011 в 13:29)
| | Вам не кажется, что задачи "исключить ряд" и "разрешить конкретный ряд" - несколько различны? | |
|
|
|
|
|
|
|
для: neadekvat
(24.01.2011 в 13:56)
| | Кажется имено поэтому я и привел эквивалкент
\W--все кроме букв цифр и _
\d цифры
_
Итого имеем что удаляем все кроме букв | |
|
|
|
|
|
|
|
для: dima4321
(24.01.2011 в 13:59)
| | А вдруг вы что-то забыли? | |
|
|
|
|
|
|
|
для: neadekvat
(24.01.2011 в 14:43)
| |
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
$str='hello 3213 ; .>@';
$new=preg_replace('/[\W\d_]/i', '', $str);
echo $new;
?>
|
| |
|
|
|