У меня есть группа строк, и я пытаюсь удалить все после, включая последнее вхождение совпадения с регулярным выражением.
Sample Data
23401BK221
23430-BZ-221
1004113-BK-3
14989r-113
30402113
Я пытаюсь сделать это с
extensions_to_remove="BK|BZ|113"
sample_data = sample_data.split(/.*(#{extensions_to_remove}$1)/)
Я надеялся, что получу массив, где я мог бы просто взять первую запись, но, к сожалению, я получаю
["","BK", "-221"]
["","BZ","-221"]
["","BK", "-3"]
["","113"]
["", "113"]
То, что я надеюсь получить, это
23401
23430
1004113
14989r
30402
Так что, по сути, удалите все, что осталось после последнего матча, а затем, если они заканчиваются '-' Я пытаюсьудали это.
Я подумал, что если я получу его в массив, я мог бы взять первое значение, а затем убрать завершающий '-', если он существует.
Любые предложения о том, что я делаю неправильно?Почему я не получаю префиксы обратно?Есть ли лучший способ сделать это?