1 / 1 / 0
Регистрация: 18.08.2015
Сообщений: 48
|
|
1 | |
Регулярные выражения, исключить строки содержащие слова11.04.2018, 07:58. Просмотров 8138. Ответов 6
Добрый день,
Помогите пожалуйста решить проблему с исключением строк в которых встречаются определенные подстроки. Задача в общем виде примерно такая: Имеем несколько категорий:
чтобы каждая строка из набора идентифицировалась только к одной категории Т.е. /.*вод.*/gi не подойдет. Важно:
но он блин все равно включает в выборку не нужные строки... Пробовал такие запросы для негазированной воды: .*(?!слад|\bгаз|^газ).*(вод).* для нескольких необходимых слов использовал ссылки на результат: .*(?!слад).*(вод|\bгаз|^газ).*(?!слад|\1).*(вод|\bгаз|^газ). * Ниче не работает, подскажите как правильно написать, я с регулярками раньше не работал... Тестил на regex101.com , не понял еще почему на этом сайте вообще ничего не выдает с "\bгаз" это же как бы граница слова (чтобы "негазированный" не подхватил)
0
|
|
11.04.2018, 07:58 | |
Регулярные выражения. Найти строки содержащие значения переменной s в качестве подстроки Удалить из строки все слова начинающиеся с гласных, используя регулярные выражения Регулярные выражения - исключить вхождение в строку |
|
11.04.2018, 10:55 | 2 | |||||
граница слова \b работает с латинскими буквами
Добавлено через 2 часа 11 минут
1
|
983 / 617 / 362
Регистрация: 07.11.2015
Сообщений: 984
|
||||||
11.04.2018, 10:55 | 3 | |||||
Можно сделать набор относительно простых регулярок, но подобрать порядок их проверки и при первом совпадении останавливать поиск.
0
|
1 / 1 / 0
Регистрация: 18.08.2015
Сообщений: 48
|
||||||||||||||||
11.04.2018, 15:20 [ТС] | 5 | |||||||||||||||
igorrr37, код работает,
только тут все что он не смог найти, считает "Негазированной водой", И в реальном примере больше перекрестных вариантов, например:
т.е. надо указывать как шаблоны слов которые не должны быть в строке, так и какие должны (причем все слова) например в "Газированная вода" должны быть "газ и "вод" (обязательно оба) и не должно быть "чай", "негаз" и еще че нибудь Что то типа, но не работает:
как мне сослаться на группу ((?:^|.*?[^е])газ|вод), чтобы не писать постоянно и чем отличается .*? от .* Добавлено через 2 часа 6 минут Урааа! нашел решение! В общем, в моем случае подходит строка такого вида: слад, чай, негаз - маски слов которых точно не должно быть в строке вод, газ - маски слов которые обязательно должны быть в строке Т.е.
А если это выражение все таки работает как надо, то вдруг кому пригодится
0
|
1 / 1 / 0
Регистрация: 18.08.2015
Сообщений: 48
|
|
12.04.2018, 06:42 [ТС] | 7 |
Так пишет что "чай", потому что у него не указано исключающих слов.
Но включает его только туда, и если исключения прописать, то он выдаст что не найден
0
|
12.04.2018, 06:42 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Из введенной строки исключить слова, содержащие заданную букву
Из матрицы исключить строки, содержащие хотя бы один нулевой элемент ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |