Как вытащить из строки один или два совпадения по условию?
Добрый день,
Есть 2 строки:
1) 5818M8001966ABHF-
2) 4137M33X24001-
Интересует такой вопрос:
Как в 1) узнать, что перед - Стоят ABHF буквы ( произвольное кол-во , стоят между знаком тире и дефисом) И вытащить их, а также 3 цифры перед ними (966)
И как в 2) узнать , что в конце строки перед знаком дефиса после цифр и вытащить только последние 3 цифры(001)?
В принципе можно затереть дефис. Больше всего интересует условие наличия в конце после цифр - букв и метод получения данной подстроки
Поиск по регулярным выражениям
В первом, если точно ждём 4 буквы, а перед ними три цифры: /.+(\d{3})(\w{4})-/
Что для второго примера нужно, я не понял :)
Niomin: Благодарю, - это командой regexp надо? Допустим он скажет - хорошо, я нашел несколько букв перед тире, А как эти буквы вытащить? На какие команды смотреть?
\w — это 0-9a-zA-Zа-яА-Я, если ничего не забыл.
Для удовлетворения этой регулярки выбираются самые "жирные" куски при возможном совпадении.
То есть на \w+ досталось 1, \d{3} — 200 перед ним, .+ — всё остальное.
Если скажете, что надеетесь получить, смогу ответить, какая регулярка подойдёт.