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

https://viseven.ewizard.io/veeva-vault-auth/hkj/
https://servier.erd.io/emails/adf
https://abbott.zard.io/editor/

нужно выбрать 1) всё что после первой точки и .io : ewizard, erd,zard
2) выбрать всё что между .io/ и слэшем / : veeva-vault-auth, emails, editor
 
1) \.(.+)\.io
2) \.io/([^/]+)
Код
Function GetMask(s$, m$)
  Dim re
  Set re = CreateObject("VBScript.RegExp")
  re.Pattern = m
  If re.test(s) Then GetMask = re.Execute(s)(0).submatches(0)
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
1.
Код
(?<=\.)[^\.]+(?=\.io)
2.
Код
(?<=\.io\/)[^\/]+
 
Ігор Гончаренко, Призрак,  Спасибо вам большое! :)
Изменено: l-lisa - 24.10.2023 13:42:54
 
Подскажите еще пожалйста, как выбрать слово между https:// и первой точкой: viseven, servier,abbott
вообще не получается у меня самой написать правильно(
 
Код
(?<=\/\/)[^\.]+(?=\.)
 
Призрак, спасибо!!!
 
Что-то не срабатывает
Цитата
Призрак написал:
(?<=\/\/)[^\.]+(?=\.)
 
В Excel не работает конструкт (?<=...)

Тогда так, но слеши тоже захватит.
Код
\/\/[^\.]+(?=\.)
 
Цитата
Призрак написал:
\/\/[^\.]+(?=\.)
неа, всё равно не сработало..
 
Странно, у меня срабатывает. А так:
Код
\/\/[^\.]+\.
 
Цитата
Призрак написал:
\/\/[^\.]+\.
нет( возвращает null
 
Код
//[^\.]+\.
 
Цитата
Призрак написал:
Код//[^\.]+\.
спасибо, так сработало, только как бы придумать избавиться от двойного слеша и точки в конце...
 
От точки легко, этот конструкт должен работать в Excel:
Код
//[^\.]+(?=\.)
А вот от слешей, либо функции Excel использовать, например ПСТР, либо ещё раз регуляркой пройтись:
Код
[^/]+
 
написала так
Код
//[^\\.]+
от точки избавилась, а от слешей ниче не получается
 
Цитата
l-lisa: как бы придумать избавиться от двойного слеша и точки в конце
Такие строки гораздо проще и прозрачнее обычными строковыми разбирать… Решение простое и я бы показал, но название темы запрещает, к сожалению. Создайте новую тему (или предложите новое название для этой), в которой вы не ограничиваетесь регулярками, а просто решаете проблему.
Изменено: Jack Famous - 24.10.2023 16:04:28
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,  дело в том, что я не в екселе это пытаюсь сделать, а в Looker, в нем к сожалению, не так много возможностей, поэтому только регуляркой
 
l-lisa, есть регулярки, но нет элементарной строковой типа ПСТР()?
    О — ну ладно тогда  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Надо смотреть какой там синтаксис для регулярных выражений. Например, в некоторых языках слеш, который не является управляющим символом, не нужно экранировать, "/", в некоторых нужно "\/", в некоторых нужно писать "\\/". И т.д.
 
Глянул примеры в доке Гугла, попробуйте так:
Код
(?<=\\/\\/)[^\\.]+
Изменено: Призрак - 24.10.2023 16:26:05
 
Цитата
Призрак написал:
(?<=\\/\\/)[^\\.]+
нет, не выходит так, конструкция с ? не работает похоже, я прошлась повторно, как вы сказали и получила то что нужно) конечно,хотелось в одной формуле, но уже и так долго с этим сижу
 
Ну, хоть так, тут лучше бы своими руками потыкать и проверить, никогда тот софт не использовал)
 
Доброе время суток.
Цитата
l-lisa написал:
а в Looker
Второй вариант вполне себе описан в документации  :)
Код
REGEXP_EXTRACT( URL , '^https://[^/]+/([^/]+)/' )

Соответственно первый, если второй верен.
Код
REGEXP_EXTRACT( URL , '^https://[^\.]+\.([^\.]+)' )
Страницы: 1
Наверх