2016-02-02 2 views
0

Я пытаюсь выполнить регулярное выражение, чтобы вернуть подстроку. Из этой строки:

TK 19120226477558So tien GD:+50,000,000 

Я хотел бы вернуть результаты: 50,000,000

Из этой строки:

TK 22010000631740 tai +5,854 VND vao 23:59 25/01/16; 
    so du TK tai 08:01 26/01/16 la: 5,336,331 VND.ND: Lai tien gui KKH 

Я хотел бы вернуть результаты: 5,854 и 5,336,331.

Спасибо за помощь!

+1

Что вы пытались сделать alredy? –

+1

Регулярные выражения требуют определенных и надежных шаблонов. В вашем случае недостаточно идентифицировать повторяющиеся числа: вам нужно отфильтровать скопления чисел, которые не являются вашими результатами. Это означает, что вам необходимо определить шаблоны, которые предшествуют и будут следовать вашим желаемым результатам. Вы не предоставили достаточно образцов для нас, чтобы сделать это за вас. – APC

ответ

0

Следующая SQL может получить результат, который имеет по крайней мере одну запятую»,„:

SELECT REGEXP_SUBSTR('so du TK tai 08:01 26/01/16 la: 5,336,331 VND.ND: Lai tien gui KKH', '\d{1,3}(,\d{3})+') FROM DUAL; 

Но если результат вы хотите получить меньше, чем тысяча, как „789“, шаблон (“ \ d {1,3} (, \ d {3}) + ') неверно.

Для этого нужен более сложный узор. Но ваше правило в деле не очень понятно.

+0

У меня есть быстрый тест, выражение регулярного выражения в oracle, которое вы предлагаете мне выглядеть хорошо, огромное спасибо! Я вижу больше случаев – hungudgm

 Смежные вопросы

  • Нет связанных вопросов^_^