Страницы: 1
RSS
RegExp Исключить некоторые символы и одно слово
 
Здравствуйте
Прошу помощи с составлением регулярного выражения
Требуется в строке определить есть ли в ней  символы какие либо символы кроме 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
 
pton,
Код
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
 
Казанский спасибо
Вы как всегда на высоте

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

https://infotecs.ru/upload/iblock/820/820911424e41fb69039fca913729587f.pdf


Буду благодарен 🌝
Изменено: PPluz Pal - 10.11.2022 09:00:46
 
PPluz Pal, с таким вариантом проще строку по символам перебрать  :D
Несмотря на апдейт, это всё ещё один из самых ужасных методов для достижения заданного результата)
Изменено: Jack Famous - 07.11.2022 23:19:17
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Читают тему
Наверх