-1

有効な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で失敗するか、この特定のシナリオに適応できません。

4

1 に答える 1

-1

すぐにわかることの 1 つは、{ と } は正規表現の特殊文字であるため、それらをエスケープする必要があることです (文字の前にバックスラッシュを置きます)。これは、置換ではなく、検索のテキストにのみ適用されます。これが問題の唯一の原因ではないかもしれませんが、おそらく必要です。

また、「ISBN正規表現」でネット検索してみましたか?このような一般的なパターンについては、通常、既知の検証済みのソリューションが既に存在します。ここに役立つかもしれないものがあります。自分でチェックする知識はありませんが、これが機能しない場合は、他に提案されている解決策がたくさんあります。

于 2012-03-27T21:06:08.977 に答える