• ベストアンサー

VB.NETで「タナカ タロウ」の文字列比較で「タナカタロウ」、「タナカ タロウ」(※半角空白)でも一致する比較方法

タイトルどおりなのですが、 「タナカ タロウ」(全角スペース) があったとしてこれと比較するときに 「タナカ タロウ」(半角スペース) 「タナカタロウ」(スペースなし) でも比較できる方法はどうやればいいのでしょうか? また、できれば 「たなか たろう」でも「タナカ タロウ」(半角カナ)でも一致させたいのですが、いい方法ないでしょうか?

  • Haule
  • お礼率52% (125/240)

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

対象文字列を (1)半角スペースを除去 (String.Repace()を使用) (2)全角スペースを除去 (String.Repace()を使用) (3)ひらがなをカタカナに変換 (StrConv()を使用) (4)半角カタカナを全角カタカナに変換 (StrConv()を使用) と処理してから比較すればよいと思います。

参考URL:
http://www.atmarkit.co.jp/fdotnet/dotnettips/266vbhirakana/vbhirakana.html
Haule
質問者

お礼

ありがとうございました! 無事できましたー

その他の回答 (1)

  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.2

StrConv関数とReplaceメソッドで実現できます。 StrConv関数: 指定に従って変換された文字列型 (String) の値を返します。ようは「全角←→半角、大文字←→小文字、カタカナ←→ひらがな」など変換できます。詳しくはヘルプを参照してください。 Replaceメソッド: このインスタンスに出現する指定 Unicode 文字または String をすべて、別に指定した Unicode 文字または String に置換します。これも詳しくはヘルプを参照してください。 【考え方】 ・全角または半角スペースが間にある文字列とない文字列 ・カタカナとひらがな 特定の形式に文字列を整えて比較すれば良いワケですね。

Haule
質問者

お礼

ありがとうございました! 無事できましたー

関連するQ&A

  • 文字列前後の「全角空白/半角空白/改行文字」を取り除く

    PHPで、「文字列の前後に付加されている全角空白/半角空白/改行文字を取り除く」 という処理をしたいのですが、以下のように置換処理を書くとうまくいきません。 $after = preg_replace('/^[  \r\n]*(.*)[  \r\n]*$/u', '$1', $before); // [  \r\n]→[半角空白、全角空白、改行文字]です どううまくいかないのかといいますと、入力として半角スペース+全角文字が入ったときに、全角文字の先頭文字が文字化けしてしまいます。 たとえば、 <半角スペース>あああ をこれにかけると、 <よくわからない文字>ああ となります。 以下のように2回に分けてみると、正常に動きます。 $tmp = preg_replace('/[  \r\n]*$/u', '', $before); $after = preg_replace('/^[  \r\n]*/u', '', $tmp); 最初のように1回の正規表現による置換で済ませたい場合、 どのように書くのが適切なのでしょうか? PHPのバージョンは5.2.3です。

    • ベストアンサー
    • PHP
  • ACCESS:半角、全角空白スペースを含む文字列の検索

    Access2003にて、空白、全角スペースを含む文字列の 検索を行う方法について教えて下さい。 他社から送られてきた検索用のリスト(xls形式)を元に、 商品の検索を下記のフィールドから行っています。 商品フィールドに商品名が約30万行格納されています。 格納されている商品名は間に 半角スペース、全角スペース、スペース無し など不規則な入力になっています。 (例:東芝除湿機、日立 掃除機、Canon 複合機…) 商品名の検索時に文字列の半角スペースと全角スペースの 指定が異なっていると検索が行えないため困っています。 (例:Canon 複合機で検索時、格納データはCanon 複合機のため検索結果なしになる) テーブルのスペースを統一、もしくは削除する方法などありますでしょうか。 皆様のお知恵をお貸し下さい。 なお、クエリでtrimを使用したスペースの削除は行ったのですが、 検索時に頻回にErrorが出るようになり断念しました。

  • カナ文字一括半角変換方法

    エクセルでカナ全角入力した文章を 一括で半角に変換できる方法を教えて下さい。

  • 文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結

    文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結果? 下記コードのように「文字列に半角・全角スペースが入っているかをチェックする関数」を作りました。 $textに入る文字列に半角・全角のスペースが入っているかをチェックします。 -------------------------------------------- my $text = "東 京"; if( isSpace($text) ) {   print "スペースあり"; } else {   print "スペースなし"; } sub isSpace{   my $str = shift || return(undef);   if( $str =~ /.*[\s ]+.*/ ){     return(1);   }else{     return(0);   } } -------------------------------------------- しかしなぜか1行目を my $text = "メ"; とするとスペースが入っているという結果になってしまいます。 なぜ「メ」が入ると半角もしくは全角のスペースとみなされてしまうのでしょうか? また、どうすれば正しくチェックできるようになりますか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 半角英数文字を全角英数文字に変換する方法

    半角英数文字を全角英数文字に変換する方法ってありますか? どうしても半角カナのみならず、英数字まで全角に必要が出てきたんですが、何かいいてはありますでしょうか。 jcode.phpsは英数文字まで全角に出来ませんよね。 pgrep_replaceも使ってみたんですが、うまく引っ掛かりません。 PHP3とMySQLでEUC-JPを扱ってます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 書類などに書く名前 カタカナかひらがなか

    書類の名前のところって基本フリガナと書いてあると思うのですが つまり「たなか たろう」と書いてはいけないけど「タナカ タロウ」と 書けって意味ですよね? なぜカタカナなのですか?

  • 半角文字の幅だけ全角にする方法は?

    Wordで表作成の問題を解いています。 6:30~8:30 10:00~11:00 という半角(「~」は全角)表記があります。それぞれ違うセルです。 6、8が10、11の真ん中にきて、かつ「:」も建てでそろっているようにするにはどうすればよいのでしょうか? スペースで桁をそろえているわけではなく、 6、8だけが全角というわけでもありません。 フォントの間隔変更、タブの設定などやりましたが、 もっと簡単にできる方法があるはずなんです。 よろしくおねがいします。

  • VBScriptである文字列に半角文字が含まれているかどうか調べる方法について

    VBScriptである文字列に半角文字が含まれているかどうか調べる方法について、ネットで調べてソースコードを拾ってきたのですが... IFの条件でなぜ全角、半角が判断できるか分かりません。教えてください。お願いします。 iLen = Len(str1) iLenByte = 0 '--- 文字列のバイト数 For i = 2 To iLen strField = Mid(str1, i, 1) iCode = Asc(strField) If iCode > 0 Then '--- 半角文字 Else '--- 全角文字 End If Next

  • 半角全角混在文字列の空白埋めについて

    現在SQLServer2000のデータを固定長で出力したいと考えています。 項目ごとに固定長にして、カンマ区切りにします。 既定の長さに達しない場合は、それぞれ半角空白で埋めます。 しかしいくつかの項目では、半角と全角が混在しており、うまく想定した形になりません。 項目はnvarchar型です。 SELECT文だけで行う方法を教えて下さい。 よろしくお願いいたします。 例 A(2桁)  B(20桁)    C(20桁) 01    H25/4 入金  確認済み 02    電話済み   〒123-4567

  • VBで「全角」文字を「半角」にしたいのです

    WORDで、文章中の段落ごとのつけた数字([0001]…[0054]…)を連番に置換する「Visual Basic」のマクロを利用し始めたのですが… 元のマクロコードでは全角を扱っていて、たとえば【0015】→【0012】に置換するようになっており、これを半角[0015]→[0012]にしたいのです。 問題のマクロコードです。〔(1)と(3)のコードを変更しました。〕  (1) .Text = "[^#^#^#^#]"        ←【^#^#^#^#】を変更しました  (2) .Replacement.Text = ""     : ★(3) AddStr = "[" + StrConv(Format(Num, "0000"), vbWide) + "]"     :  (4) If Flg_Conv = 1 Then  (5) MsgBox StrConv(Num - 1, vbWide) + "個の番号を置換しました", , Msg_Title  (6) Else (3)のところで数字が「全角」になるようになっていると思うのですが、これをどのように変更すれば、半角の数字になるのでしょうか? よろしくお願いします。

専門家に質問してみよう