我有一个文件,其中有效的 ISBN 始终出现在
isbn = {<ISBN>}
但通常缺少通常用于格式化它们的破折号。我想在 BBEdit 中使用 grep插入这些破折号。例如我想更换
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 中失败,要么我无法使它们适应这种特定情况。