Я пытаюсь написать регулярное выражение, используя Impala, чтобы сопоставить строку между двумя символами, где второй символ может отсутствовать. Например, я хочу сопоставить все между символом @
и .
(если существует оператор точки).
- test @ mytest.stackoverflow.com -> return mytest
- test @ mytest -> return mytest
Я написал следующее регулярное выражение, и оно работает, но я думаю, что оно определенно могло бы быть написано более понятным способом.
regexp_extract(regexp_extract('test @ mytest.stackoverflow.com', '^([^.]*).*', 1), '@(.*?)', 1) ->
mytest