Oracle, regexp: первые два слова из строки
Слова разделяются только пробеломесли из этого можно сделать вывод, что слово - это всё что не пробел, то:
[^[:space:]]+ [^[:space:]]+
Ага, спасибо, то, что нужно.
А может кто подскажет как получить N-е слово?
INSTR/SUBSTR что-то не очень хочется использовать ибо крокодилы получаются
INSTR/SUBSTR что-то не очень хочется использовать ибо крокодилы получаются

А может кто подскажет как получить N-е слово?оформить в виде функции не выход?
Хранимку писать не хочется, поскольку они не используются (ETL).
Если регэкспом нельзя, то придется писать обертку, да.
Если регэкспом нельзя, то придется писать обертку, да.
Кажется нагуглилось
regexp_substr('<предложение с разделителем слов ~>, '[^~]+', <word_no>, <word_no> + 1)
Только
Пример:
regexp_substr('<предложение с разделителем слов ~>', '[^~]+', 1, <word_no>)Пример:
select regexp_substr('Шла Маша по шоссе и сосала сушку','[^ ]+',1,4) from dual;
RES
шоссе
Да, действительно, посмотрел, что значит третий параметр - позиция, с которой начинать поиск, т.е. 1 (с начала слова).
Спасибо.
Спасибо.
Недавно кстати тоже ковырялся с регэкспами, нашёл интересную шпаргалку: http://www.regexbuddy.com/
Оставить комментарий
0000
Слова разделяются только пробелом, т.е. слова через запятую, тире и прочее - одно слово.Пока пришел к такому:
Как вторую часть переписать, чтобы не буквы не считало началом нового слова?