|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Не подскажите, чем можно заменить \b в регулярном выражении? Нужно отфильтровать российские номера мобильных телефонов, после которых допустим произвольный суффикс (после пробела). Самым правильным был бы шаблон "^79\d{9}\b". Просто "^79\d{9}" допускает наличие более 11 цифр в номере. Код: plsql 1. 2.
Для 1234 должен выдать null. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 12:09 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B., Код: plaintext 1. 2.
Может быть будет проще "отфильтровать российские номера мобильных телефонов" по этим диапазонам? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 13:14 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B.Для 1234 должен выдать null. для этого тестового примера: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 13:22 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B. Просто "^79\d{9}" допускает наличие более 11 цифр в номере. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 13:24 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
exciter regexp_substr(n, '^\d{3}($|\D)') Да, мысль неплохая. Но в результат (столбец) попадет и \D, а я хотел бы получить "чистый" номер (или null). Elic Кроме якоря начала, есть и якорь конца. Я это знаю. Только не пойму, чем это поможет. Если речь о шаблоне "^79\d{9}($|\s.+)" (или как предложили "^79\d{9}($|\D)"), то он все же \b не заменяет, так как в результат попадают символы, которые я бы не хотел включать в результат. И look ahead использовать не могу, так как не поддерживается. Мне бы хотелось обойтись одним несложным шаблоном в regexp_substr, получив сразу готовый к использованию результат и не используя более сложную конструкцию case when regexp_like then regexp_substr end или regexp_replace (потому что тогда удобнее фильтровать на клиенте). Если в пределах поддержки ораклом регулярных выражений это сделать нельзя, значит сделаю на клиенте. Но может быть можно, просто я не знаю как. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 14:15 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Валерий Юринский Может быть будет проще "отфильтровать российские номера мобильных телефонов" по этим диапазонам? Имеется ввиду что-то вроде between '79000000000' and '79999999999' ? В поле после цифр может быть указан пробел и суффикс, поэтому так не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 14:17 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B. Если речь о шаблоне "^79\d{9}($|\s.+)" (или как предложили "^79\d{9}($|\D)"), то он все же \b не заменяет, так как в результат попадают символы, которые я бы не хотел включать в результат. И look ahead использовать не могу, так как не поддерживается. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 14:25 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Да. К сожалению мне этот параметр недоступен . ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 15:03 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B. Но в результат (столбец) попадет и \D, а я хотел бы получить "чистый" номер (или null). Приведите более подробный пример тестовых данных и того, что хотите в итоге получить. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 15:38 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B. Да. К сожалению мне этот параметр недоступен . Ну неужели так трудно сделать SUBSTR Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 17:29 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
exciter Приведите более подробный пример тестовых данных и того, что хотите в итоге получить. Валидные значения — любые российские мобильные номера (79zzyyyxxxx), к которым разрешено через пробел добавлять произвольный суффикс. Например "79876543210", "79876543210 ", "79876543210 123" — валидные значения. Все остальные варианты — невалидны, например "798765432100", "7987654321", "79876543210abc". Я бы хотел получить (минимальными усилиями) либо чистый номер (для валидных значений), либо null. SY Ну неужели так трудно сделать SUBSTR Конечно можно, ведь телефонный номер имеет фиксированную длину. Я еще тут ( 22302469 ) эту задачу решил. Но на будущее хотел бы знать, можно ли выбрать фрагмент по границе слова \b с помощью доступных шаблонов для общего случая. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 18:40 |
|
Простая замена \b в regexp
|
|||
---|---|---|---|
#18+
Alibek B., +regexp_replace ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2021, 19:09 |
|
|
start [/forum/topic.php?fid=52&msg=40058647&tid=1880330]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 245ms |
0 / 0 |