У меня есть файл, в котором действительные номера 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, либо я не могу адаптировать их к этому конкретному сценарию.