|
regexp_replace с ветвлением
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, добрый день! Подскажите, пжлста, разобраться с регуляркой по условию. Смысл такой - заменять по условию (аналоги case when then) в regexp_replace. Сейчас получается лапша из regplace, можно ли как-то это сократить в одно, два условия? Условный пример под катом. Спасибо! P.S. Если уже разбиралась подобная тема, то скиньте ссылку, плиз, сам по форуму не нашел подобного. select regexp_replace(regexp_replace(regexp_replace(regexp_replace('N B N B', '^B', 'привет!!!'), '^N', 'пока!!!!' ), 'B', 'привет' ), 'N', 'пока') from dual; select regexp_replace(regexp_replace(regexp_replace(regexp_replace('B B N B', '^B', 'привет!!!'), '^N', 'пока!!!!' ), 'B', 'привет' ), 'N', 'пока') from dual; ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 10:46 |
|
regexp_replace с ветвлением
|
|||
---|---|---|---|
#18+
zipperxz, Это что искусство ради искусства? Да и в общем случае имеем так называемый эффект " mother in che mother apy": Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:31 |
|
regexp_replace с ветвлением
|
|||
---|---|---|---|
#18+
zipperxz, zipperxzСейчас получается лапша из regplace, можно ли как-то это сократить в одно, два условия? можно чз макросы по аналогии с https://stewashton.wordpress.com/2021/11/04/multi-replace-in-sql-with-21c-scalar-macros/ Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 16:29 |
|
regexp_replace с ветвлением
|
|||
---|---|---|---|
#18+
SY, Нет) Данные искусственные, конечно же, в данном случае просто заменил условными. Это из реальной задачи, когда нужно в строке в зависимости от положения в строке и символа менять на различные подстроки. Возможно, данные неудачно привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 18:10 |
|
|
start [/forum/topic.php?fid=52&msg=40120169&tid=1879679]: |
0ms |
get settings: |
25ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
124ms |
get tp. blocked users: |
1ms |
others: | 370ms |
total: | 593ms |
0 / 0 |