Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5

функция preg match

24.03.2016, 23:15. Показов 1770. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если знаешь что должно получиться на выходе из поля формы, ограничивать каждое поле регуляркой, что бы получаемая информация соответствовала шаблону через функцию preg match ресурсоемко ?

Просто если знаешь что в поле разрешена определенная группа символов, проверять ее шаблоном где указаны разрешенные символы зная что в таком случае ничего лишнего туда не напишешь эффективнее?! чем проверять форму кучей разных функций как htmlspecialchars, nl2br, mysql_real_escape_string, filter_var ну и тд или это не оправдано ?!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2016, 23:15
Ответы с готовыми решениями:

Регулярные выражения через preg.match
Ребят! нужна помощб в функции... немогу никак понять.. уже часов 7 сижу и что только не делал.. весь гугл облазил. В общем проблема...

И снова preg match all, не могу справиться с парсингом
Приветствую всех! Прошу помощи в разрешении следующей проблемки: Пытаюсь спарсить ссылки и название в следующем коде <td...

Нужна помощь, я в preg match шарю плохо.
нужен код который например вытащит 51dg3s51ger86g1e35r из кода : <br>blablabla"auth_key":"51dg3s51ger86g1e35r" blabllalbalbla ...

9
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
26.03.2016, 12:16
цифры можно не проверять, а просто: $var = (int) $var
если символов немного (логин/пароль/em@il), то регуляркой
а так то да, preg_match() самый ресурсоёмкий способ
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.03.2016, 23:04
Стойкий миф о быстродействии preg_match и преимуществах использования других строковых функций вместо нее. Заблуждение, на простых регулярках preg_match отработает быстрее той же strpos, например, ЕМНИП.
1
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
30.03.2016, 00:11
Цитата Сообщение от KOPOJI Посмотреть сообщение
Стойкий миф о быстродействии preg_match и преимуществах использования других строковых функций вместо нее. Заблуждение, на простых регулярках preg_match отработает быстрее той же strpos, например, ЕМНИП.
по тестам preg_match() в 2 раза дольше
PHP
1
2
3
4
5
6
7
8
9
$str = 'abcdefoooojjjjjmmmmmbbbbbb444';
$find = 'fooooj';
$a = 999999;
 
while ($a--)
{
    if (preg_match('/'.$find.'/',$str)) {echo 'da';}
#    echo strpos ($str,$find);
}
это не миф, PCRE всегда тормознее были

PHP 5.6.17-0+deb8u1 (cli) (built: Jan 13 2016 09:10:12)
1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
30.03.2016, 15:35
А зачем цикл то ?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
30.03.2016, 21:56
Цитата Сообщение от Azdeman Посмотреть сообщение
А зачем цикл то ?
а что там без цикла мерять
0.00000005 сек выполнения?
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
31.03.2016, 07:02
Цитата Сообщение от KOPOJI Посмотреть сообщение
на простых регулярках preg_match отработает быстрее той же strpos
preg_match не может быть быстрее strpos ( если она выполняет туже задачу ( preg_match( '#search_text#' , $text ) против strpos($text , 'search_text') ) , выигрывать по скорости preg_match начинает если же происходит поиск типа preg_match( '#^search_text#' , $text ) против strpos($text , 'search_text') === 0 , и то при значительных размерах $text
1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
31.03.2016, 21:01
Нам официальный сайт PHP как бы намекает:
http://php.net/manual/en/function.preg-match.php
Tip
Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() instead as it will be faster.
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
31.03.2016, 23:11
Цитата Сообщение от полудух Посмотреть сообщение
PCRE всегда тормознее были
Не всегда и не всех функций. Да, я спутал strpos с mb_strpos.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
timethese(5000000, array(
    'mb_strpos' => function() {
        $str = 'abcdefoooojjjjjmmmmmbbbbbb444abcdefoooojjjjjmmmmmbbbbbb444s4';
        $find = '4s4';
        mb_strpos($str, $find, 0, 'UTF-8');
    },
    'preg_match' => function() {
        $str = 'abcdefoooojjjjjmmmmmbbbbbb444abcdefoooojjjjjmmmmmbbbbbb444s4';
        $find = '/4s4/u';
        preg_match($find, $str);
    }
));
Code
1
2
3
4
5
6
Benchmark: timing 5_000_000 iterations of mb_strpos, preg_match
 
 function  : total sec. @ iterations/sec.
------------------------------------------
 mb_strpos :     6.1553 @      812308.3569
 preg_match:     4.9792 @     1004184.6614
если предварительно указать внутреннюю кодировку для mbstring, то будет пошустрее, около preg_match.
Code
1
2
3
4
5
6
Benchmark: timing 5_000_000 iterations of mb_strpos, preg_match
 
 function  : total sec. @ iterations/sec.
------------------------------------------
 mb_strpos :     4.6811 @     1068128.4110
 preg_match:     4.3997 @     1136447.0520
Хотя к последнему коду еще можно прибавить вызов mbstring_internal_encoding(). Ну пусть будет расчет на то, что это сделано в настройках php.ini.
К тому же я не имел в виду, что "вот эта конкретная строковая функция будет медленнее!", а вообще ситуацию со строковыми функциями - strpos я привел для примера по памяти, и ошибочно. Некоторые почему-то считают, что лучше напихать десяток строковых функций вместо одной регулярки, т.к. "регулярки всегда работают медленнее строковых функций". Это неправда. Один пример, с mb_strpos я уже привел выше. Вот живой пример такого мнения Как убрать http из домена регулярными выражениями, тесты на это чуть ниже в 5 посте.
1
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,229
01.04.2016, 11:04
Цитата Сообщение от KOPOJI Посмотреть сообщение
Не всегда и не всех функций. Да, я спутал strpos с mb_strpos.
так это mb_strpos() просто тормознее в 2 раза
на моём примере выше strpos() даёт 0.537
mb_strpos() - 0.87
preg_match() - 0.990

ну одно можно сказать точно - в ПХП дела с регулярками обстоят лучше, чем в перле
там разница в 4 и более раз
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2016, 11:04
Помогаю со студенческими работами здесь

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash
Добрый день. Только начал изучать регулярные выражения и решил прочитать книгу для новичков. но не смог справится с самым первым примером....

Ereg и preg match
как правильно заменить на preg match это : if(!ereg("^{1,255}$", $ad)) и нужно ли вообще менять,заминка в том что не пойму что значит...

Preg match и массив server
Когда я смотрю сайт через комп по виндовс, скрипи не перекидывает на http://.../404/ код <?php $ch=-1; ...

Функция Match ()
Здравствуйте, вот с такой функцией проблема. Подскажите пожалуйста как написать Я вот на этой стадии. Какие данные подставить в...

Функция QModelIndexList QAbstractItemModel::match
Привет. Может кто объяснить мне эту функцию? документацию я конечно прочел, но как ее использовать так и не пойму. Можно ли ее заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru