|
Выбор построки, ограниченной маркерами
|
|||
---|---|---|---|
#18+
Требуется из строки вида "что-то НАЧАЛО что-то КОНЕЦ хвост" выделить подстроку между "НАЧАЛО" и "КОНЕЦ" Помогите составить шаблон. И посоветуйте ресурс (книгу, сайт), где хорошо объясняются регулярные выражения, и с большим количеством примеров. Пытался разобраться с регуляркой по докам Oracle и Postrgesql, но безрезультатно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 13:53 |
|
Выбор построки, ограниченной маркерами
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5.
Перед вставкой в регулярное выражение фрагментов "НАЧАЛО" и "КОНЕЦ" их нужно экранировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 14:44 |
|
Выбор построки, ограниченной маркерами
|
|||
---|---|---|---|
#18+
Если "что-то" может содержать пробелы, можно сделать так: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 15:13 |
|
Выбор построки, ограниченной маркерами
|
|||
---|---|---|---|
#18+
Cyrax_02, этот вариант не работает, а пробелы действительно могут быть. Результат Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 16:31 |
|
Выбор построки, ограниченной маркерами
|
|||
---|---|---|---|
#18+
Kr_Yury Cyrax_02 Если "что-то" может содержать пробелы, можно сделать так: Код: sql 1. 2. 3. 4.
Код: plaintext
Почему не работает в PostgreSQL/posix - неизвестно. Либо странный артефакт posix , либо тупой баг реализации в PostgreSQL . Что происходит : жадный квантификатор + перед нежадным +? делает последний жадным (блокирует действие оператора ? ). В качестве решения можно заменить конструкцию \s+ конструкцией \s+?(?!\s) , дающую тот же результат, но при этом артефакт не наблюдается: Код: sql 1. 2. 3. 4. 5. 6.
P.S . Судя по молчанию, регулярные выражения в PostgreSQL народ не любит... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2020, 07:23 |
|
|
start [/forum/topic.php?fid=53&msg=40015976&tid=1994389]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 534ms |
0 / 0 |