0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 7
1

Поиск по регулярному выражению ничего не находит

11.11.2015, 10:35. Показов 737. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
if ((preg_match("/^[0-9a-zA-Z\\-\\.]{4,40}\\.png\$/i", trim($png)))){
echo $png;
}

Пожалуйста, подскажите ошибку. Никак не пойму, как правильно составить.
На примере должно выводиться название картинки, если условие совпадает с рег.выражением, но к сожалению ничего не выводит вообще.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2015, 10:35
Ответы с готовыми решениями:

Поиск по регулярному выражению не находит подходящие под него подстроки
Пишу я, значит, код... <?php $reg = '/^{1}+$/'; $name = 'паповадлповрпадповадлп'; echo...

Поиск по регулярному выражению
В файле лежит код страницы,нужно в нём найти <input id="srf" name="srf" type="hidden"...

Поиск по регулярному выражению
Не подскажете как искать выражения, которые находятся в ссылках. вот например <option...

Поиск на сайте по регулярному выражению
есть html форма <html><body> <form action="search.php"> страница поиска email: <input type=text...

9
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 10:54 2
приведи пример первоначального названия и пример что должно быть на выходе
0
0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 7
11.11.2015, 11:05  [ТС] 3
PHP
1
2
3
4
5
$png = "kartinka.png";
 
if ((preg_match("/^[0-9a-zA-Z\\-\\.]{4,40}\\.png\$/i", trim($png)))){
echo $png;
}
На выходе не должно быть пробелов и символов. Но хоть с пробелом , хоть без, все равно не выводит ничего.
0
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
11.11.2015, 11:53 4
PHP
1
2
3
4
5
6
7
8
// Проверка
if(preg_match('#^[-a-z0-9_.]+\.[a-z0-9]+$#ui', $png)){
    echo 'Файлик правильный';
}else{
    // иначе можно приводить его в правильный вид
    $file_new = preg_replace('#[^-a-z0-9_.]+.#ui', '_', $png);
    echo $file_new;
}
0
0 / 0 / 1
Регистрация: 17.11.2014
Сообщений: 7
11.11.2015, 12:03  [ТС] 5
Спасибо!
0
93 / 93 / 9
Регистрация: 20.02.2011
Сообщений: 210
11.11.2015, 15:58 6
GoDr, Доброго дня не стал создавать новую тему. Задача следующая:
есть строка 207189//30997155606N08N требования к группам строки следующие:
1 группа [a-zA-Z0-9\s\+\-\?:()\.,'\/]{1,16}, то есть 207189;
2 группа ([\/]{2}[a-zA-Z0-9\s\+\-\?:()\.,'\/]{1,16})? то есть //30997155606N08N
требования к группам:
1 группа обязательна, но не содержит двух символов "//" подряд и содержит остальные символы набора
2 группа необязательна начинается с символов "//" и содержит далее остальные символы набора.
Просьба помочь написать регулярное выражение, которые бы по preg_match_all выдала 2 эти группы.

Спасибо
0
1099 / 661 / 397
Регистрация: 07.11.2015
Сообщений: 1,062
11.11.2015, 17:30 7
Можно заменить 0-9 на \d,
а используя модификатор шаблона /i можно заменить a-zA-Z на a-z.
В итоге шаблон выглядит как-то так
PHP
1
2
3
4
5
$str = '207189//30997155606N08N';
 
preg_match_all('~((?:[-+a-z\d\s?:().,]|/(?!/)){1,16})(//[-+a-z\d\s?:().,]{1,16})?~i', $str, $matches);
 
print_r($matches);
1
93 / 93 / 9
Регистрация: 20.02.2011
Сообщений: 210
11.11.2015, 21:46 8
Emilien, Правильно ли я понял, что:
1. (?: задаёт пассивную группу;
2. [-+a-z\d\s?:().,]|/(?!/) определяет символы, которые в группе квадратных скобок, либо символ / после которого не может идти второй / путём отрицания (?!/)?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.11.2015, 23:12 9
Цитата Сообщение от djdish Посмотреть сообщение
(?: задаёт пассивную группу
интересное определение. С какой-то стороны, можно и так сказать) Это просто группировка, которая не будет далее запомнена.
Цитата Сообщение от djdish Посмотреть сообщение
определяет символы, которые в группе квадратных скобок, либо символ / после которого не может идти второй / путём отрицания (?!/)?
именно.
1
93 / 93 / 9
Регистрация: 20.02.2011
Сообщений: 210
13.11.2015, 14:06 10
KOPOJI, Emilien, спасибо.

Для тех кому может понадобиться аналогичное решение, которое будет работать в xs:pattern XSD ниже:

([a-zA-Z0-9\+\-\?:()\.,'/][a-zA-Z0-9\s\+\-\?:()\.,']{0,15}|[a-zA-Z0-9\+\-\?:()\.,'/]([a-zA-Z0-9\s\+\-\?:()\.,'][/]){0,7})
0
13.11.2015, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2015, 14:06
Помогаю со студенческими работами здесь

Поиск и замена по регулярному выражению с функцией в параметре замены
Пытаюсь создать функцию для поиска и замены строки в base64 кодированных частях контента страниц и...

Нужна программа, которая по регулярному выражению находит все совпадения в строке
Никак не могу освоить добавленную в C++11 библиотеку <regex>! Помогите пожалуйста! Нужна...

Поиск по регулярному выражению
Доброго времени суток, есть необходимость проверки формулы по регулярному выражению. Написал...

Долгий поиск по регулярному выражению
Здравствуйте. Ищу через devexpress rich edit control через Document.FindAll(new...

Поиск файла по регулярному выражению
Написал функцию public void search(File topDirectory, String mask, int chooseSearch) { ...

Sed поиск подстроки по регулярному выражению
не совсем понятно как с помощь sed доставать подстроки по регулярному выражению echo...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru