|
|
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Не могу составить регулярное выражение. Мне необходимо найти слово 'слово' в предложении, которое не находится внутри кавычек Например дана последовательность Код: sql 1. берем первое 'слово' Код: sql 1. берем второе 'слово' Код: sql 1. берем второе слово Необходимо, чтобы после нужного нам 'слово' шло [:space:] Подскажите, а то я уже устал подбирать, опыта в таких делах не имею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 22:55:31 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timur, Код: plsql 1. 2. 3. 4. 5. что-то вроде такого наоборот ищет слово в кавычках, а теперь надо наоборот. Как это можно сделать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 23:52:06 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timur, цикл по инстрам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 01:00:44 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timurчто-то вроде такого наоборот ищет слово в кавычках, а теперь надо наоборот. Как это можно сделать??? Если нет многоуровнего вложения двойных кавычeк, то: Код: plsql 1. 2. 3. 4. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 02:04:06 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Мне нужно узнать номер позиции вхождения этого слова. Так я не смогу узнать SY Если нет многоуровнего вложения двойных кавычeк, то: Код: plsql 1. 2. 3. 4. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2016, 21:34:59 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov Timurномер позиции замени substr на instr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 08:33:36 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
123ййAdylov Timurномер позиции замени substr на instrТы не заметил, что позиции уже убиты до этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 08:46:31 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Elic, упс. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 11:20:21 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
123ййупс. Код: plsql 1. Ну-ну… Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 11:28:26 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#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:24 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
если полагаться на строгую парность скобок, то достаточно оперделить их четность по одну сторону от искомого Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 13:57:02 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. P.S. что-то там с пробелом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 15:19:27 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
По совету SY Ну такого я точно не советовал посколько прекрасно понимaю слово внутри кавычек может встретится многократно. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2016, 19:25:05 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#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:34 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
Adylov TimurSY, как-то так можно Ну и где здесь "нужно узнать номер позиции вхождения этого слова"? Воспользуйся решением от -2- 19657143 SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 03:06: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:58 |
|
||
|
регулярное выражение
|
|||
|---|---|---|---|
|
#18+
fortnet, Тебе надо к психиатру... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2016, 22:19:37 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39309021&tid=1887454]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 337ms |

| 0 / 0 |
