|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Добрый день! Нужно заменить регистр некоторых слов в текстовом поле. Например Код: plsql 1.
Я вижу два варианта решения: 1. Нужно использовать для таких целей функцию. 2. Разбивать строку на три части (до слова, слово, после слова) и для средней части менять регистр. Может будут еще идеи как это проще сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 12:10 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
SergiiW, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 13:26 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Vadim Lejnin, Если бы все было так просто. :( Слово может содержаться в тексте как часть другого слова, поэтому и использовался паттерн '(\W|^)(Слово1|Слово2|Слово3)(\W|$)' ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 13:44 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
SergiiW, памятка: HOWTO :: Как правильно задавать вопросы Как мне оформить свое сообщение? Студентам, желающим помощи 1) Полная постановка задачи (без сокращений) 2) Подготовьте тестовые данные, лучше в виде with пример (не ваш случай) в конце 3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot) 4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение Пример подготовленных данных, запроса и вывода. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 13:47 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Vadim Lejnin, Какова вероятность того, что если Вы не увидели, что нужно заменить слово, а не часть слова, для пояснения этого я даже привел паттерн, в тексте из нескольких строк, что Вы обратите внимание на текст из десятка, сотен строк? ЗЫ Уважаемый, для того чтобы сделать ссылку на произведение Льва Толстого "Война и мир" совсем не обязательно приводить его полный текст. Достаточно сделать ссылку и, желательно, на конкретную фразу, которая Вам непонятна или не нравиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:10 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
И прошу обратить внимание, что исходный текст может быть в любом регистре. Для этого я указал поиск без учета регистра 'i' Код: plsql 1.
Приведу пример Строка входная 'Текст1 теКст2 Текст1Текст2' Слово Текст2 Строка на выходе 'Текст1 ТЕКСТ2 Текст1Текст2' ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:21 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Или еще пример Строка входная 'Текст1 Кст-Текст2' Слово поиска 'кст' Строка на выходе 'Текст1 КСТ-Текст2' ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 14:37 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
SergiiW Уважаемый Функция, раскладывающая предложение в слова, преобразующая и далее собирающая предложение. RE тут только как помощник в разложении на слова. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 19:00 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Elic Функция, раскладывающая предложение в слова, преобразующая и далее собирающая предложение. RE тут только как помощник в разложении на слова. Спасибо! Уже понял, что других вариантов, по сути нет, - сделал функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 20:00 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Elic Совковец, не следует огрызаться, прося помощи. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 20:03 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
SergiiW, оракловые и java регулярки к сожалению не поддерживают перловые модификаторы \U \L (в перле было бы просто s/\b(word1|word2|word3)\b/\U$1/g), поэтому без MLE чисто регулярками не получится. Функцией, конечно, будет правильнее и эффективнее, но в крайнем случае можно поизвращаться, типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 21:04 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
SergiiW не стоит вешать ярлыки. Я из СССР, но не ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 21:19 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov оракловые и java регулярки к сожалению не поддерживают перловые модификаторы \U \L В Java 9 (которая пока недоступна в Oracle DB) это вообще сделали по человечески наконец-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 21:53 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov SergiiW, оракловые и java регулярки к сожалению не поддерживают перловые модификаторы \U \L (в перле было бы просто s/\b(word1|word2|word3)\b/\U$1/g), поэтому без MLE чисто регулярками не получится. Функцией, конечно, будет правильнее и эффективнее, но в крайнем случае можно поизвращаться, типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 22:55 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
just for fun Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
https://docs.oracle.com/en/database/oracle/oracle-database/21/clrnt/demo.html ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2022, 09:47 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Кобанчег, Спасибо! Не знал о такой возможности. Интересное решение, но, к сожалению, у меня нет соответствующих прав. Сейчас это уже не важно. Написал обычную функции Oracle и она работает достаточно быстро. Еще раз спасибо, буду знать о такой возможности на будущее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2022, 17:06 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
хотел показать пример как легко сделать через XQuery функцию, но в самом начале нарвался на баги оракловой реализации fm:replace: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2022, 21:59 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
лучше даже так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2022, 22:03 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, Если предположить что бага нет. Как предлагается применить upper? Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 17:25 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Кобанчег, с такими багами крайне неприятно что-то делать, но чисто для примера пара вариантов: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
и более общий вариант: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 20:04 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 20:27 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Кобанчег найденному совпадению нельзя применить функцию https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/util/regex/Pattern.html
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 21:14 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Sayan Malakshinov Жаль вообще что \U \L и условные операторы из перла в джаву не перенесли В перл тоже я бы использовал универсальное решение с модификатором /e Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 00:31 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
Кобанчег Sayan Malakshinov Жаль вообще что \U \L и условные операторы из перла в джаву не перенесли \U \L к регулярным выражениям не относятся, это перловые операторы для работы( интерполяции выражений) внутри строк с двойными кавычками. Код: powershell 1.
А perl-оператор регулярных выражений реализован так, что он подразумевает, что текст внутри него находится в двойных кавычках. Поэтому до разбора рег. выражения сначала проходит этап интерполяции и только потом начинается собственно разбор регулярного выражения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 23:00 |
|
Заменить регистр некоторых слов
|
|||
---|---|---|---|
#18+
volodin661 это перловые операторы для работы( интерполяции выражений) внутри строк с двойными кавычками. 1. "Escape sequences" 2. perlop Код: plsql 1. 2.
volodin661 \U \L к регулярным выражениям не относятся, volodin661 А perl-оператор регулярных выражений реализован так, что он подразумевает, что текст внутри него находится в двойных кавычках. автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
volodin661 Поэтому до разбора рег. выражения сначала проходит этап интерполяции и только потом начинается собственно разбор регулярного выражения. Код: plsql 1. 2.
очевидно, что интерполяция REPLACEMENT происходит после матчинга, т.к. надо подставлять backreferences. Сравни с Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2022, 04:41 |
|
|
start [/forum/topic.php?fid=52&msg=40125130&tid=1879604]: |
0ms |
get settings: |
26ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
449ms |
get tp. blocked users: |
2ms |
others: | 380ms |
total: | 939ms |
0 / 0 |