Чтобы удалить первые буквенные символы из строки - PullRequest
0 голосов
/ 24 декабря 2018

Я должен игнорировать начальные нули, начальные / конечные пробелы, начальные буквенные символы из строки.Пожалуйста, помогите, какое регулярное выражение можно использовать.

Например: строка abc123abc, тогда она должна вернуть 123abc.В настоящее время я использовал

REGEXP_SUBSTR('abc123abc','([1-9]+[0-9]*)( *)$') 

, но он возвращает ноль для меня.

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Vaish, вот как должно быть регулярное выражение.

Что это будет делать, он удалит все начальные пробелы, ведущие нули.

Пример запроса:
SELECT REGEXP_SUBSTR('abc123abc','[1-9]+.*') from dual;

Вы можете увидеть некоторые примеры, которые я пробовал здесь, плюс вы можете проверить еще некоторые здесь.https://regex101.com/r/zfohRB/1

Регулярное выражение: '[1-9]+.*'

Объяснение:
[1-9] - этот номер будет искать начало.Исключая 0.
+ - Квантификатор + обозначает 1 или более.
. - Означает что-либо после этого.
* - Означает 0 или более.(Вы можете заменить это на +, если считаете, что вам нужно хоть что-то после чисел.)

Удачи

0 голосов
/ 24 декабря 2018

Как то так?

SQL> with test (col) as
  2    (select 'abc123abc'  from dual union all
  3     select ' 1234ddc'   from dual union all
  4     select '0abcd'      from dual union all
  5     select '18858 '     from dual union all
  6     select 'ab123ab45'  from dual
  7    )
  8  select col, trim(regexp_replace(col, '^[[:alpha:]]+| |0')) result
  9  from test;

COL       RESULT
--------- ---------
abc123abc 123abc
 1234ddc  1234ddc
0abcd     abcd
18858     18858
ab123ab45 123ab45

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...