Простой вопрос по RegExp (Oracle10 или Unix)
\.(.*)$ -> $1
Хех, здесь вопрос: после какой по счёту точки?
А так, если после первой:
А так, если после первой:
<как-то выводятся строки> | grep -P 's/^[^.]*?\.\(.*\)$/$1/g'
Прошу прощения, видимо я неверно понял документацию к Оракл и его стандарт регулярных выражений отличается от Unix
Потому наверно не работает.
P.S. Надо для Оракл. Точка будет одна.
Потому наверно не работает. P.S. Надо для Оракл. Точка будет одна.
<как-то выводятся строки> | grep -P 's/^[^.]*?\.\(.*\)$/$1/g'что означает вопросик тут?
в оракле тоже самое
там есть ффункция регексп реплейс
там есть ффункция регексп реплейс
Нежадность, очевидно 
Другое дело, что он тут не нужен, с ним и без него одинаково получится.
А ещё тут с эскейпингом, кажется, косяки. Хотя у меня не получилось проверить:

Другое дело, что он тут не нужен, с ним и без него одинаково получится.
А ещё тут с эскейпингом, кажется, косяки. Хотя у меня не получилось проверить:
grep: The -P option is not supported
SELECT REGEXP_REPLACE('foo.bar', '\.(.*)$', '\1') FROM dual
нету 10 под рукой
но должн быть как-то так
отличия от юникса: вместо $1 нада \1
нету 10 под рукой

но должн быть как-то так
отличия от юникса: вместо $1 нада \1
Другое дело, что он тут не нужен, с ним и без него одинаково получится.ну дык и я про то же
тут еще такой момент: опции жадности есть токо в крутых реализациях регулярных
чаще всего этого нету, в оракле, например, тоже нету
Из приведенного в Оракл ничего не работает
- пробую regexp_substr
- пробую regexp_substrтут еще такой момент: опции жадности есть токо в крутых реализациях регулярныхУгу.
чаще всего этого нету, в оракле, например, тоже нету
Хотя в данном конкретном случае -
-P, --perl-regexp
Interpret PATTERN as a Perl regular expression.
Хотя и не работает почему-то.
Из приведенного в Оракл ничего не работает - пробую regexp_substrсубстр - это частный случай реплейса
мне лично с реплейсом как-то проще и не нужно помнить синтаксис 2 команд вместо одной
И как будет на Replace?
ты пропустил что ли?
Да, пардон не заметил 
Там немного не то получается - там просто точка удаляется: foo.bar -> foobar, а надо bar.
P.S. Сорри что спрашиваю, regexp вещь полезная, но времени ее учить пока нет

Там немного не то получается - там просто точка удаляется: foo.bar -> foobar, а надо bar.
P.S. Сорри что спрашиваю, regexp вещь полезная, но времени ее учить пока нет

дык у меня ж кривые руки 
надо было скрипт который с юникса взять:
поясняю для тебя:
^ - берем начало строки
.* - откидываем все подряд
\. - до точки, ее тоже откидываем
(.*) - берем все подряд, все что в скобках будет запомнено в \число
$ - так берем до конца строки
\1 - заменить все-все-все на то что в первой скобке

надо было скрипт который с юникса взять:
SELECT REGEXP_REPLACE('foo.bar', '^.*\.(.*)$', '\1') FROM dual
поясняю для тебя:
^ - берем начало строки
.* - откидываем все подряд
\. - до точки, ее тоже откидываем
(.*) - берем все подряд, все что в скобках будет запомнено в \число
$ - так берем до конца строки
\1 - заменить все-все-все на то что в первой скобке
Ура, псиб большое 

Оставить комментарий
0000
Как получить кусок строки после напр. точки?Хотелось бы одной командой, как напр. regexp ('bla.bla2', '\w+') -> bla