|
|
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Прошу помочь. Есть строка, в которой: <DATE></DATE> <SUM>42513,84</SUM> <ACCOUNT> 40817810000040208061 </ACCOUNT> <SALE>0</SALE> Мне нужно заменить то, что между <ACCOUNT> и </ACCOUNT> (я подчеркнул). Пробовал через регулярные выражения, но никак. Пожалуйста, объясните как правильно? так, находил то, что надо менять: SELECT LTRIM(SUBSTR('<DATE></DATE> <SUM>42513,84</SUM> <ACCOUNT>40817810000040208061</ACCOUNT> <SALE>0</SALE>',REGEXP_INSTR('<DATE></DATE> <SUM>42513,84</SUM> <ACCOUNT>40817810000040208061</ACCOUNT> <SALE>0</SALE>','<ACCOUNT>', 20), '29'), '<ACCOUNT>') SETL from DUAL; и через REGEXP_INSTR находил вхождение двух этих выражений, между которыми заменять надо, но дальше это не пошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:00 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
arelsom, s / <ACCOUNT>old</ACCOUNT> / <ACCOUNT>new</ACCOUNT> / ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:21 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:50 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
arelsom, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:50 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 18:54 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. Создать из строки нерутед xml-значение можно с помощью xmlparse. Updatexml deprecated ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 19:58 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
-2-Создать из строки нерутед xml-значение можно с помощью xmlparse. Ага. Вылетело из головы. -2-Updatexml deprecated Да, к сожалению. Эквивалентные такой тривиальной задаче XQuery проигрывают в читабельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 21:41 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousЭквивалентные такой тривиальной задаче XQuery проигрывают в читабельности. А к REPLACE/REGEXP_REPLACE и то и другое жутко проигрывают в производительности. Так-что если все тэги ACCOUNT то я бы использовал REPLACE/REGEXP_REPLACE. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 22:29 |
|
||
|
Как заменить в строке только выражение между двумя словами, остальное оставить как есть?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousЭквивалентные такой тривиальной задаче XQuery проигрывают в читабельности.Если оставить в стороне шелуху самого xquery (sql вообще не самый лаконичный и читабельный язык, если смотреть со стороны), то остается достаточно читабельный х-запрос: Код: xquery 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2018, 22:41 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39738813&tid=1883123]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 421ms |

| 0 / 0 |
