Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
Подскажите, как с помощью решулярки выделить символ после знака / в произвольном тексте.

1/3 от доли в праве 14,1 га.

Нужно получить число 3.
19 май 17, 16:27    [20497022]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 970
x17.mstu,

WITH x(s) AS (
  VALUES('1/3 от доли в праве 14,1 га.'::text)
)
SELECT substr(s, strpos(s, '/')+1,1)
  FROM x;
19 май 17, 16:42    [20497075]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 970
x17.mstu,

SELECT regexp_replace('1/3 от доли в праве 14,1 га.','^[^/]*/(.).*$','\1');
19 май 17, 16:44    [20497087]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
vyegorov,
Не сработает, если будет 100 в знаменатели

SELECT regexp_replace('1/100 от доли в праве 14,1 га.','^[^/]*/(.).*$','\1');
19 май 17, 17:08    [20497149]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
ursido
Member

Откуда:
Сообщений: 315
x17.mstu,

Почему Вы так полагаете? В чем именно расхождение с постановкой?
19 май 17, 17:12    [20497159]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
ursido,

Возвращает 1
19 май 17, 17:13    [20497163]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
ursido
Member

Откуда:
Сообщений: 315
x17.mstu,

Что Вы хотели получить? Где это указано в исходном задании?
19 май 17, 17:16    [20497175]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
ursido,
Мне желательно получить, то что указано в знаменателе.
19 май 17, 17:17    [20497179]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
ursido
Member

Откуда:
Сообщений: 315
x17.mstu,

Наверное, еще и циферки хотите получить? Буковки и пробельчики не подходят?
19 май 17, 17:34    [20497241]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
ursido,
Конечно)
19 май 17, 17:39    [20497261]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
ursido
Member

Откуда:
Сообщений: 315
x17.mstu,

Почему Вы как об этом можно прочитать в исходном задании?
19 май 17, 17:46    [20497277]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
ursido,
SELECT regexp_replace('1/100 от доли в праве 14,1 га.','^[^/]*/(.[0-9]+).*$','\1');

Вот так работает
19 май 17, 18:29    [20497393]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
x17.mstu
Member

Откуда:
Сообщений: 120
x17.mstu,

Точнее вот так
SELECT regexp_replace('1/100 от доли в праве 14,1 га.','^[^/]*/(.[0-9]*).*$','\1');
19 май 17, 18:30    [20497400]     Ответить | Цитировать Сообщить модератору
 Re: Как с помощью решулярки выделить символ после знака / в произвольном тексте  [new]
ursido
Member

Откуда:
Сообщений: 315
x17.mstu,

Попробуйте вот так:

SELECT regexp_replace('1/f100 от доли в праве 14,1 га.','^[^/]*/(.[0-9]*).*$','\1');

Чтобы увидеть ошибку
19 май 17, 18:35    [20497408]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить