|
|
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Не могу составить регулярное выражение. Мне необходимо найти слово 'слово' в предложении, которое не находится внутри кавычек Например дана последовательность Код: sql 1. берем первое 'слово' Код: sql 1. берем второе 'слово' Код: sql 1. берем второе слово Необходимо, чтобы после нужного нам 'слово' шло [:space:] Подскажите, а то я уже устал подбирать, опыта в таких делах не имею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 22:55 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timur, Код: plsql 1. 2. 3. 4. 5. что-то вроде такого наоборот ищет слово в кавычках, а теперь надо наоборот. Как это можно сделать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 23:52 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timur, цикл по инстрам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 01:00 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timurчто-то вроде такого наоборот ищет слово в кавычках, а теперь надо наоборот. Как это можно сделать??? Если нет многоуровнего вложения двойных кавычeк, то: Код: plsql 1. 2. 3. 4. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 02:04 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Мне нужно узнать номер позиции вхождения этого слова. Так я не смогу узнать SY Если нет многоуровнего вложения двойных кавычeк, то: Код: plsql 1. 2. 3. 4. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 21:34 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timurномер позиции замени substr на instr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 08:33 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
123ййAdylov Timurномер позиции замени substr на instrТы не заметил, что позиции уже убиты до этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 08:46 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Elic, упс. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 11:20 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
123ййупс. Код: plsql 1. Ну-ну… Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 11:28 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov TimurМне нужно узнать номер позиции вхождения этого слова.Поскольку в оракловых регулярках не реализовано negative lookahead/lookbehind, то приходится извращаться. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 13:27 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
если полагаться на строгую парность скобок, то достаточно оперделить их четность по одну сторону от искомого Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 13:57 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. P.S. что-то там с пробелом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 15:19 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
По совету SY Ну такого я точно не советовал посколько прекрасно понимaю слово внутри кавычек может встретится многократно. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 19:25 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
SY, как-то так можно declare sql_text varchar2(4000):= '"папа слово машина слово" "куршавель слово мент" слово "слово"'; sql_text_test varchar2(4000); l_count number; begin sql_text_test := sql_text; LOOP IF (REGEXP_INSTR(sql_text_test, '"[^"]*"',1,1,0,'i') = 0) THEN EXIT; END IF; l_count := REGEXP_INSTR(sql_text_test, '"[^"]*"',1,1,1,'i') - REGEXP_INSTR(sql_text_test, '"[^"]*"',1,1,0,'i'); sql_text_test := REGEXP_REPLACE(sql_text_test, '"[^"]*"', rpad(' ', l_count),1,1,'i'); END LOOP; dbms_output.put_line(sql_text_test); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 21:14 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov TimurSY, как-то так можно Ну и где здесь "нужно узнать номер позиции вхождения этого слова"? Воспользуйся решением от -2- 19657143 SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 03:06 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Чисто для прикола... select str,idx from ( select substr(s,1,A_IDX-1) || lpad('~',A_LEN,'~') || substr(s,A_LEN+1,B_IDX-A_LEN-1) || lpad('~',B_LEN,'~') as str ,instr(substr(s,1,A_IDX-1) || lpad('~',A_LEN,'~') || substr(s,A_LEN+1,B_IDX-A_LEN-1) || lpad('~',B_LEN,'~'),'слово ') as idx ,A_QU, A_IDX, A_LEN, B_QU, B_IDX, B_LEN, C_QU, C_LEN, C_IDX from ( select s, level lv, regexp_substr(s, '(")([^"]*)(")',1,level) quote, length(regexp_substr(s, '(")([^"]*)(")',1,level)) len ,regexp_instr(s, '(")([^"]*)(")',1,level) indx from( select 'слово " слово картина"' as s from dual ) connect by regexp_substr(s, '(")([^"]*)(")',1,level) is not null ) pivot( max(quote) as qu, max(indx) as idx, max(len) as len for (lv) in ('1' as a, '2' as b, '3' as c, '4' d ) ) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 17:05 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
fortnet, Тебе надо к психиатру... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 22:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39309288&tid=1887454]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 494ms |

| 0 / 0 |
