この業界で長く働かれている方は、翻訳仕様書で次のような表現をよく目にするはずです。
「英数字、記号、および括弧は半角。漢字ひらがなカタカナは全角。全角と英数字半角の間は 1 スペース。ただし括弧類の内側は常にスペースなし。括弧類の外側は句読点でないかぎり 1 スペース。句読点の両側にはスペースが存在してはいけない」
これは、次のように 3 つに分けて考えます。
- 全角の英数字および半角カタカナを正規表現で検出
- 半角英数字と全角漢字ひらがなカタカナの間にスペースがないパターンを検出
- 括弧と句読点はそれぞれのパターンを考えて、パイプでつなげる
1 の解決:
[a-zA-Z0-9ヲ-゚]
上記は、全角アルファベットの小文字と大文字、全角数字、および半角カタカナ (ヨーグノレトなど) を検出しますw。特殊な表現で短縮していないのはわかりやすくするためです。
2 の解決:
[a-zA-Z0-9][ァ-ヶぁ-ん一-龠]|[ァ-ヶぁ-ん一-龠][a-zA-Z0-9]
なげーよw。「一-龠」は漢字の範囲を示しています。JISコードの場合は別の表現もあります。これは漢字率の算出にも応用できますね。著作権フリーの Wikipedia の CAT ツールの説明文に「一-龠」を使用してみます。
[一-龠] の実行結果 |
3 の解決策:
\s[。、]|[。、]\s|[\(\[\"\{]\s|[^\s。、][\(\[\"\{]
左から順に日本語で説明します。
「句読点の前にスペースがあるエラー」
「句読点の後にスペースがあるエラー」
「半角括弧類の内側にスペースがあるエラー」
「半角括弧類の外側が句読点またはスペース以外であるエラー」
これらは、それなりのソフトウェアを使用すれば連続して自動で検出できます。もちろん、さらに細かく詰めることもできますが、クライアントごとに変化がありすぎるので、あとはいろいろと工夫してくだ賽の河原。
あっ、コメントは誰でも投稿できるようにしました。スパムが多すぎたら考え直すかもしれません。
0 件のコメント:
コメントを投稿