Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »cles::blog >ArchiveList >2010-2 > 2010-2-27
«Prev ||1 || Next»
2010/02/27

英語でない部分のスペースを削除する

ruby 

下記のようなわざとスペースがところどころに挿入されている日本語を形態素解析したいと思って、前処理として余計なスペースを取り除く処理を書こうとしたのですが、思いのほか手こずってしまったので、後学のためにメモ。

str = <<EOSち ょ っ と ワ ケ あ っ て MS の ナ レ ッ ジ ベ ー ス を 検 索 し て い た ら 最 後 に 「The behavior is by design」と 書 い て あ るのを見つけてしまいました。EOS

はじめに書いたコード

単純にスペースを削除するようなコードなのですが、英語の部分があると単語が全部つながってしまうのでこれはNG。

puts str.gsub(/ +/,'')#=>ちょっとワケあってMSのナレッジベースを検索していたら最後に「Thebehaviorisbydesign」と書いてあるのを見つけてしまいました。

最終的に書いたコード

最終的に書いたコードは下記。
文字クラスの指定が16進になっていますが、これが半角の英数字記号を表しています*1

puts str.gsub(/([^\x21-\x7E]) +([^\x21-\x7E])/,'\1\2')#=>ちょっとワケあって MS のナレッジベースを検索していたら最後に「The behavior is by design」と書いてあるのを見つけてしまいました。
  • *1:ASCIIコード表を確認すると分かりますが、スペースを除く可視文字が !(0x21)~~(0x7e) に存在するためです。

at 16:23 |
2010/02/27

6th Anniversary !


すっかり忘れていましたが、このブログも6周年になりました。
公私ともに忙しいので、更新するのが辛くなってきましたが、これからもがんばりたいと思います。


    at 13:21 |
    «Prev ||1 || Next»
    « :: »cles::blog >ArchiveList >2010-2 > 2010-2-27
    Copyright © 2004-2023 by CLES All Rights Reserved.
    サイト内検索
    検索ワードランキング
    へぇが多いエントリ
    閲覧数が多いエントリ
    1 .アーロンチェアのポスチャーフィットを修理(100406)
    2 .福岡銀がデマの投稿者への刑事告訴を検討中(99746)
    3 .年次の人間ドックへ(99716)
    4 .三菱鉛筆がラミーを買収(99320)
    5 .2023 年分の確定申告完了!(1つめ)(99293)
    最新のエントリ
    cles::blogについて
    誰が書いてる?
    最近行った場所
    サイトポリシー
    タグ一覧
    検索ワードランキング

    Referrers

      Powered by CLES
      Nucleus CMS v3.31SP3/w memcached
      21389163(W:9574 Y:1555 T:1135)
      cles::blogのはてなブックマーク数
      benchmark


      [8]ページ先頭

      ©2009-2025 Movatter.jp