Простой вопрос по RegExp (Oracle10 или Unix)
\.(.*)$ -> $1
А так, если после первой:
<как-то выводятся строки> | grep -P 's/^[^.]*?\.\(.*\)$/$1/g'
P.S. Надо для Оракл. Точка будет одна.
<как-то выводятся строки> | grep -P 's/^[^.]*?\.\(.*\)$/$1/g'что означает вопросик тут?
там есть ффункция регексп реплейс
Другое дело, что он тут не нужен, с ним и без него одинаково получится.
А ещё тут с эскейпингом, кажется, косяки. Хотя у меня не получилось проверить:
grep: The -P option is not supported
нету 10 под рукой
но должн быть как-то так
отличия от юникса: вместо $1 нада \1
Другое дело, что он тут не нужен, с ним и без него одинаково получится.ну дык и я про то же
тут еще такой момент: опции жадности есть токо в крутых реализациях регулярных
чаще всего этого нету, в оракле, например, тоже нету
Из приведенного в Оракл ничего не работает - пробую regexp_substr
тут еще такой момент: опции жадности есть токо в крутых реализациях регулярныхУгу.
чаще всего этого нету, в оракле, например, тоже нету
Хотя в данном конкретном случае -
-P, --perl-regexp
Interpret PATTERN as a Perl regular expression.
Хотя и не работает почему-то.
Из приведенного в Оракл ничего не работает - пробую regexp_substrсубстр - это частный случай реплейса
мне лично с реплейсом как-то проще и не нужно помнить синтаксис 2 команд вместо одной
И как будет на Replace?
ты пропустил что ли?
Там немного не то получается - там просто точка удаляется: foo.bar -> foobar, а надо bar.
P.S. Сорри что спрашиваю, regexp вещь полезная, но времени ее учить пока нет
надо было скрипт который с юникса взять:
SELECT REGEXP_REPLACE('foo.bar', '^.*\.(.*)$', '\1') FROM dual
поясняю для тебя:
^ - берем начало строки
.* - откидываем все подряд
\. - до точки, ее тоже откидываем
(.*) - берем все подряд, все что в скобках будет запомнено в \число
$ - так берем до конца строки
\1 - заменить все-все-все на то что в первой скобке
Ура, псиб большое
Оставить комментарий
0000
Как получить кусок строки после напр. точки?Хотелось бы одной командой, как напр. regexp ('bla.bla2', '\w+') -> bla