регулярное выражение для извлечения чисел из строки - PullRequest
0 голосов
/ 08 января 2020

У меня есть несколько строк, и я хочу извлечь только совпадающие числа.

Примеры строк:

abc_efghi_92458_ijk_mno_uvw_test_v2_ghi003
AB_CD_E01_436873_MY_NAME_TESTING_O_001
testing-check-100001-23244-sln-001

Я ожидаю вывод:

92458
436873
23244

Я пробовал с +([^_]+) и +([\d{5,6}]+)

Нет удачи спасибо

Ответы [ 3 ]

1 голос
/ 08 января 2020

В качестве примера вы можете использовать группу захвата и обратную ссылку.

Значение находится в группе 2

.*([-_])(\d+)\1

Regex demo

0 голосов
/ 08 января 2020

Это даст вам любую непрерывную последовательность чисел:

/[.*!\d](\d+)[.*!\d]/g

let arr = [
    "abc_efghi_92458_ijk_mno_uvw_test_v2_ghi003",
    "AB_CD_E01_436873_MY_NAME_TESTING_O_001",
    "testing-check-100001-23244-sln-001"
]

let re = /[.*!\d](\d+)[.*!\d]/g

let res = arr.map(str => str.match(re))

console.log(res)
0 голосов
/ 08 января 2020

Вы можете просто итеративно выбросить каждую строку из списка. Затем примените это регулярное выражение: .*([-_])(\d+)\1 и получите группу 2, если она совпадает. Затем добавьте вывод к результату.

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