|
|
|
| вот есть такая штука в RegExp:
c{1,} количество повторов идущих подряд.
а есть такая штука, которая не подряд смотретит, то есть в разброс количество | |
|
|
|
|
|
|
|
для: Ghost_user
(17.11.2009 в 11:31)
| | Не очень понятно, можно пример? | |
|
|
|
|
|
|
|
для: cheops
(17.11.2009 в 16:05)
| | ну мне надо в условии проверить, больше ли 2ух раз повторяется символ пунктуации или пробела в тексте.
Кароче говоря! надо такое условие, которое проверит больше ли 2ух слов в тексте...
только пожалуйста не упоминайте о подсчёте количество слов, ведь можно как-нибудь схитрить и написать проще, ведь мне нужно только проверить больше ли 2ух слов в тесте. | |
|
|
|
|
|
|
|
для: Ghost_user
(17.11.2009 в 16:23)
| | Это Perl-регулярные выражения? Дело в том, что preg_match() как раз возвращает количество найденных соответствий. Можно использовать это число для программирования логики скрипта. | |
|
|
|
|
|
|
|
для: cheops
(17.11.2009 в 16:33)
| | можно пример=) | |
|
|
|
|
|
|
|
для: Ghost_user
(17.11.2009 в 16:42)
| | кажется понял или нет...
preg_match вернёт false, если не найдено, так?
а, если найденвернёт количество найденных подстрок? | |
|
|
|
|
|
|
|
для: Ghost_user
(17.11.2009 в 16:43)
| | Да, только я ошибся, речь, конечно же, о preg_match_all(), а не о preg_match(), которая прекращает поиск после первого же найденного соответствия. | |
|
|
|
|
автор: .... (17.11.2009 в 16:57) |
|
|
для: Ghost_user
(17.11.2009 в 16:43)
| | preg_match() найдёт только одно , "первое" совпадение
Вы говорите о preg_match_all()
, но можно сделать и одно выражение которое найдёт два вхождения
например если нужно найти две собаки '@' то можно написать просто '#@.*@#'
, и совпадения если собака только одна небудет | |
|
|
|
|
автор: .... (17.11.2009 в 17:10) |
|
|
для: Ghost_user
(17.11.2009 в 16:43)
| | >больше ли 2ух слов в тесте.
'#[(?:[0-9A-Z_a-zА-яЁё]+\W+){3,}#'
[0-9A-Z_a-zА-яЁё] потомучто \w не всегда корректно работает с нелатинским алфавитом | |
|
|
|
|
автор: .... (17.11.2009 в 17:14) |
|
|
для: ....
(17.11.2009 в 17:10)
| | даже лучше вместо {3,} просто {3}
, чтобы было быстрее | |
|
|
|
|
|
|
|
для: ....
(17.11.2009 в 17:14)
| | спс+) | |
|
|
|
|
|
|
|
для: Ghost_user
(17.11.2009 в 17:40)
| | а разве
еЁ не входит в А-Я а-я | |
|
|
|
|
автор: .... (17.11.2009 в 22:48) |
|
|
для: Ghost_user
(17.11.2009 в 17:41)
| | Зависит от кодировки текста в каком порядке там идёт алфавит
, я иногда заглядываю в charmap (можно ввести в строке "выполнить") системную утилиту Виндовс
вообще-то не сильно взвешенный вариант ответа был
, потомучто если может некорректно работать \w то тогда и некорректно будет работать\W
:) а если там вообще юникод то тогда нужен модификатор /u
, но Ёё чаще всего вне последовательности А-я | |
|
|
|