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

Регулярные выражения как исключить слово

  • автор:

RegExp исключить слово

Регулярки исключить слово
Здвствуйте как с помощью регулярок можно вытящить только те значеня которые не содержат строку.

Исключить слово в ссылке
Всем привет. $str = $article; $tags = array(‘h1′,’h2′,’h3′,’h4′,’h5′,’h6’); $word = ‘topic’;.

Исключить одно одинаковое слово из предложения
Пара по программированию началась сразу же с практики где не объяснили как выполнять задание.

13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069

Негативное заглядывание вперед (?! . ) . Заглядывая врепед, мы остаёмся на прежнем месте. Позитивное заглядывание вперед (?= . ) . В англоязычной литературе Lookahead Assertion.

/("(?!exceptword")[^"]*")/g

Кавычка, но только если дальше не следует , затем после этой кавычки любые символы, кроме кавычки, и закрывающая кавычка.

Регистрация: 28.04.2015
Сообщений: 151
Записей в блоге: 4
А можно ли исключить из поиска несколько различных слов?
Например, exceptword и исключение.

Эксперт HTML/CSS

1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
Alex_Gur,

/("(?!(?:exceptword|исключение)")[^"]*")/g

или можно проще, но вот я не уверен в работоспособности кода ниже

/("(?!exceptword"|исключение")[^"]*")/g

Регистрация: 28.04.2015
Сообщений: 151
Записей в блоге: 4
Большое спасибо!
Проверил на сервисе https://regex101.com/. Оба варианта отлично работают!
Регистрация: 02.10.2014
Сообщений: 8

Извиняюсь за воскрешение темы, но бьюсь о невидимую стену очень долго, и выхода найти не могу. Перепробовал уже массу комбинаций с этими negative/positive lookahead, но Гордиев Узел не развязывается. Помогите, пожалуйста!

Есть, например, кусок текста:

 

Что-то 1

Что-то 2

Что-то 3

что-то 4

Что-то 5 и что-то 6,

при этом что-то 7 с ошибкой

что-то 8

1052 / 656 / 394
Регистрация: 07.11.2015
Сообщений: 1,052
isolator, https://regex101.com/r/x6cAI5/1
Регистрация: 02.10.2014
Сообщений: 8

Emilien, фантастика! Я был в полушаге от решения! Спасибо тебе огромное! А я ведь в какой-то момент думал, что самая основная проблема именно в жадном/нежадном захвате, где-то там зарылась собака. Совсем чуть тюнинга, и такой результат А я не дотянул. Эээх.
Надеюсь ещё кому-то обязательно поможет! Таких решений не встречал.
Премного Благодарю!

Регистрация: 09.02.2019
Сообщений: 4

Здравствуйте!
Может и мне кто-нибудь поможет с регулярным выражением? Уже 2 дня безрезультатно бьюсь.
Мне нужно в HTML-коде выделить ссылку на картинку, которая может быть с расширением: .png или .jpg
Нужно чтобы исключались ссылки обёрнутые в теги: [IMG] и [/IMG]
Меня хватило только на такой запрос:

[^\[IMG\]http[\S]*((\.pn+)|(\.jp+))[^[\/IMG]

Вот часть страницы, на которой я проверяю:

 
#2470815 RobinB.
2019-10-24 16:33:55
Я сделал скриншот.
we ывыфвhttps://a.сайт.ру/a27/19r10/393r/7762f29dfac3d8.jpg
https://a.сайт.ру/a27/1910/kgfdfiisd39/7762f29ds8.png
Добавить новый текст
[URL=http://www.сайт.ру][IMG]https://b.сайт.ру/b18/191re50/b6/e58569d80fa3af.png[/IMG][/URL]

Тут должно выделиться две ссылки: «https://a.сайт.ру/a27/19r10/393r/7762f29dfac3d8.jpg» и «https://a.сайт.ру/a27/1910/kgfdfiisd39/7762f29ds8.png»

1052 / 656 / 394
Регистрация: 07.11.2015
Сообщений: 1,052

ЦитатаСообщение от DemonXT Посмотреть сообщение

Мне нужно в HTML-коде выделить ссылку на картинку, которая может быть с расширением: .png или .jpg
Нужно чтобы исключались ссылки обёрнутые в теги: [IMG] и [/IMG]

https?:\/\/[^\s\[\]]+\.(jpg|png)(?!\[\/IMG)

Регистрация: 09.02.2019
Сообщений: 4

ЦитатаСообщение от Emilien Посмотреть сообщение

Код
https?:\/\/[^\s\[\]]+\.(jpg|png)(?!\[\/IMG)

Спасибо Вам большое. Ваш вариант рабочий, но мне не совсем подходит.
Для работы с регулярными выражениями я вынужден использовать этот модуль: https://regex.sorokin.engineer. demos.html Мне нужно, чтобы в нём сработала выборка, тогда и у меня в программе сработает.
Там где-то есть демка, на которой я тестирую выражения, но сейчас там её не могу найти. Поэтому прикрепил в сообщению. Проверка РВ.zip
В этой демке вылетает ошибка последнее условие, которое исключает тег: «IMG»: https://yadi.sk/i/0uR_N1ffWyqt-g

1052 / 656 / 394
Регистрация: 07.11.2015
Сообщений: 1,052

ЦитатаСообщение от DemonXT Посмотреть сообщение

Для работы с регулярными выражениями я вынужден использовать этот модуль: https://regex.sorokin.engineer. demos.html Мне нужно, чтобы в нём сработала выборка, тогда и у меня в программе сработает.

Заглядывание вперед (?=. ) (. ) не реализовано в TRegExpr https://regex.sorokin.engineer. #lookahead
Вместо (?!\[/IMG) придётся использовать что-то такое ($|[^\[]|\[([^/]|/[^I][^M]))

(https?://[^\s\[\]]+\.(jpg|png))($|[^\[]|\[([^/]|/[^I][^M]))

Регистрация: 09.02.2019
Сообщений: 4

ЦитатаСообщение от Emilien Посмотреть сообщение

(https?://[^\s\[\]]+\.(jpg|png))($|[^\[]|\[([^/]|/[^I][^M]))
При такой реализации ничего не находится.
1052 / 656 / 394
Регистрация: 07.11.2015
Сообщений: 1,052

ЦитатаСообщение от DemonXT Посмотреть сообщение

При такой реализации ничего не находится.
В каком тексте ищете совпадения и нет ли лишних пробелов по краям регулярки.
Регистрация: 09.02.2019
Сообщений: 4

ЦитатаСообщение от Emilien Посмотреть сообщение

В каком тексте ищете совпадения и нет ли лишних пробелов по краям регулярки.
Вы правы. У меня в тексте были пробелы поэтому и не искал. Спасибо за вашу помощь.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Исключить из файла последнее слово каждой строки
Создать текстовый файл F, строки которого содержат слова. Исключить из файла последнее слово каждой.

В произвольной строке исключить первое и последнее слово
В произвольной строке исключить первое и последнее слово, с помощью макросов visual basic

Исключить из предложения слово, заданное своим порядковым номером
С клавиатуры ввести предложения. Исключить из него слово, заданное своим порядковым номером (если.

С клавиатуры ввести произвольное предложение и исключить из него предпоследнее слово
С клавиатуры ввести произвольное предложение и исключить из него предпоследнее слово.

Как исключить слово из регулярного выражения?

Здравствуйте.
Подскажите пожалуйста. Как сделать регулярное выражение, чтобы оно находило слово «хороший», только при условии, что перед ним не стоит слово «очень».
К примеру в предложении, которое ниже, должно найтись первое слово «хороший», а второе не должно найтись.
Предложение:
«один два три хороший четыре пять очень хороший шесть семь».

Регулярные выражения как исключить слово

Здравствуйте
Прошу помощи с составлением регулярного выражения
Требуется в строке определить есть ли в ней символы какие либо символы кроме S L M X — . / 0 1 2 3 4 5 6 7 8 9 и слова ONE
С набором символов я разобрался [^\.\-/SMLX\d\s], а вот добавить что бы также исключало слово ONE додумать не могу

Есть идея найти все эти символы и слово и заменить на пустую строку «». Потом проверить результат на пустоту. (идея пришла после создания темы)

Изменено: pton — 17.01.2018 23:46:10
Пользователь
Сообщений: 8839 Регистрация: 11.01.2013
18.01.2018 00:01:17

Sub bb() Dim re As Object Set re = CreateObject("vbscript.regexp") re.Global = True re.ignorecase = True re.Pattern = "[\.\-/SMLX\d\s]|ONE" Debug.Print re.Replace("крO NEоме S L M X - . / 0 1 2 3 4 5 6 7 8 9 и слова ONE ", "") End Sub
крONEомеислова

Изменено: Казанский — 18.01.2018 00:01:52
Пользователь
Сообщений: 79 Регистрация: 05.09.2017
18.01.2018 00:10:14

Казанский спасибо
Вы как всегда на высоте

Может кому интересно. Нашел такой файл для проверки регулярных выражений здесь

Прикрепленные файлы

Изменено: pton — 18.01.2018 00:13:23
Пользователь
Сообщений: 11602 Регистрация: 07.11.2014
OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome
18.01.2018 00:52:50

Цитата
pton написал:
Казанский спасибо. Вы как всегда на высоте

Ну дык)))
А в качестве справочника лично я использую это: [1] , [2] , [3]
Изменено: Jack Famous — 18.01.2018 00:53:00

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

Пользователь
Сообщений: 1 Регистрация: 07.11.2022
07.11.2022 17:02:43

Есть не плохой метод исключения, простым перебором значений
Ну как сказать не плохой, муторно конечно…Недавно столкнулся с некоторыми сложностями, например, перебрать n-е количество кодов, не используя скриптов при этом. В чисти виде регулярными выражениями, облазил пол сети. Например, этот сайт. Хоть тут тематика Excel, регулярнее оно и Африке Регулярное. Перебор выглядит ужасно, я соглашусь, но просто не понимаю в ином случае как это можно сделать регулярным выражением…
Вот ещё один не хитрый пример, задача такая, сделать сортировку номеров. Регулярка должна видеть весь весь «Спектор» написания мобильного и домашнего номера.В то же время, зачем я все это описал, остался не решённый вопрос, возможно ли как то помином перебора, ухитрится и исключить используя ТОЛЬКО регулярное выражение некие последовательности или сделать исключение как таковое из выборки. Поскольку, при работе с регулярным выражением можно описать [^…] — исключение некоторых символов, либо в начале что сразу убьёт регулярку. Ведь она будет выводить эти же символы описанные позже в выражении. Например: я хочу изъять 1000 пропусков сотрудников (как в варианте 2). Но не брать с 550 по 720. Пропуск вида «S1-0001b» если же мне убрать [^551] — то будет невозможно использовать числа 5/1.
Вот и ломаю голову, бьюсь по форумам, как можно сократить регулярное выражение, используя регулярку и только…
https://infotecs.ru/downloads/documentacii//

Изменено: PPluz Pal — 10.11.2022 09:00:46
Пользователь
Сообщений: 11602 Регистрация: 07.11.2014
OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome
07.11.2022 17:20:11

PPluz Pal, с таким вариантом проще строку по символам перебрать
Несмотря на апдейт, это всё ещё один из самых ужасных методов для достижения заданного результата)

Изменено: Jack Famous — 07.11.2022 23:19:17

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

Исключаем фразу из регулярного выражения

Встала недавно передо мной задача — настроить работу ЧПУ-каталога от корня сайта. Как результат, все страницы обрабатывались комплексным компонентом каталога. Для того, чтобы исключить ненужные разделы из этой обработки, понадобилось в urlrewrite дописать исключение некоторых разделов.

Для того чтобы исключить слово из регулярного выражения, или набор слов, или даже целое предложение, используем конструкцию:

((?!word1|word2).)*

Результатом стало вот такое правило:

array( "CONDITION" => "#^/(?!404\.php|novelty|action|discounts|search)#", "RULE" => "", "ID" => "bitrix:catalog", "PATH" => "/catalog/index.php", )

Количество показов: 8669
Если вам была полезна статья можете отблагодарить автора:

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин — что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки.

Заказать разработку сайта

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение — мы подберем подходящий вам бюджет на сопровождение

Подать заявку на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.

Подать заявку на выполнение работ

Copyright © pai-bx.com | Попович Алексей. Персональный сайт разработчика, 1986-2023

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *