綾小路龍之介の素人思考

[perl] 日本語文章校正(半角スペースを英字の左右に挿入)

gettextで行う日本語化プロジェクトで、半角スペースを英単語の両側に入れる作業が必要になったが、手作業で修正するのが面倒だったので、perlで一括変換。

以下のような関数を定義。

sub spacer
{
        my $str = shift;
        my $east = qr/(?!\p{M})(?:\p{Han}|\p{Katakana}|\p{Hiragana})/;
        my $west = qr/(?!\p{M})(?:\p{Latin}|\p{Greek}|\p{Cyrillic})/;
        $str = decode 'utf8', $str;
        $str =~ s/($east)($west)/$1 $2/g;
        $str =~ s/($west)($east)/$1 $2/g;
        $str = encode 'utf8', $str;
        return $str;
}

あとはwhile文の中とかでこの関数を呼び出す。

リファレンス

  1. 404 Blog Not Found:perl - 半角スペースを自動で入れる
  2. portal shit! : 半角スペース入れてますか?
  3. 正規表現で日本語と半角英数字の間にスペースを挿入する - make world
  4. perl 半角英数字 スペース - Google 検索
  5. perl5.8のUnicodeサポート

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-09-05T01:42:16+09:00
  2. Modified: 2009-09-05T01:42:16+09:00
  3. Generated: 2018-10-05T23:09:13+09:00