У меня есть файл, в котором действительные ISBN всегда появляются в контексте
isbn = {<ISBN>}
но часто отсутствуют дефисы, которые обычно используются для их форматирования. Я хотел бы вставить эти дефисы с помощью grep в BBEdit. Например, я хотел бы заменить
isbn = {0226104036}
с
isbn = {0-226-10403-6}
но для этого мне нужно разбить строку цифр, что требует знания кодировки ISBN и навыков grep, которых у меня нет.
я дохожу до поиска
isbn = {([0-5]|7|60[0-9]|61[0-7]|8[0-9]|9[1-4]|9[5-8][0-9]|992[7-9]|99[3-8][0-9]|9990[1-9]|999[1-5][1-9]|9996[1-7])([0-9]+)([0-9]|X)}
и заменить на
isbn = {\1-\2-\3}
который в приведенном выше примере доводит меня только до
isbn = {0-22610403-6}
и в некоторых случаях может даже поставить первый тире не в том месте.
Обратите внимание, что я могу предположить, что все ISBN — это ISBN-10. Также обратите внимание, что я делаю это в BBEdit, который имеет некоторые особенности синтаксиса grep. связанные решения, которые я нашел здесь, либо не работают в BBEdit, либо я не могу адаптировать их к этому конкретному сценарию.