C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 文字列削除について


(過去ログ 31 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■15225 / inTopicNo.1)  文字列削除について
  
□投稿者/ HappyLove (1回)-(2008/03/07(Fri) 13:40:36)

分類:[VB.NET/VB2005] 

VB.NET2003を使用しています。プログラムの勉強はまだ2ヶ月です。

 「会社名」
 ○○株式会社
 △△(株)
 梶栫栫
 (株)×××
 株式会社 ○○○

↑分かりにくいかもしれませんが、エクセルのある列に「会社名」の列があって、
 いくつか会社名が載っています。
 この会社名を1行ずつセルから取得した時に、前カブ・後カブ(/株式会社)がある場合は、
 これを除いて会社名を表示する、という方法が思い浮かびません。

 ※エクセルシートを指定する等の記述は省略しています。
 For iRow = 4 To oSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row  
   Dim strCompanyName As String '会社名
    
   strCompanyName = DirectCast(oSheet.Range("D" & iRow).Value, String) 'セルから会社名を取得
    
   Debug.WriteLine("会社名:" & strCompanyName) ←ここで会社名を表示するときに、前カブ・後カブを除外したものを表示したい
 Next

 上記のコードの中に、strCompanyNameで「trim」「Replace」「Remove」など考えたのですが、どう組み立てたらよいかわかりません。
 どなたかお教えくださいませんか。よろしくお願い致します。

 ちなみに省きたい文字列の考えられるパターンは、
   @「株式会社」
   A「梶v(記号一文字)
   B「(株)」(両カッコが全角)
   C「(株)」(後ろカッコが半角)
   D「(株)」(前カッコが半角)
   E「(株)」(両カッコが半角)
                      です。

 


引用返信 編集キー/
■15226 / inTopicNo.2)  Re[1]: 文字列削除について
□投稿者/ よねKEN (127回)-(2008/03/07(Fri) 14:17:25)
No15225 (HappyLove さん) に返信
> VB.NET2003を使用しています。プログラムの勉強はまだ2ヶ月です。
> 
>  「会社名」
>  ○○株式会社
>  △△(株)
>  梶栫栫
>  (株)×××
>  株式会社 ○○○
> 
> ↑分かりにくいかもしれませんが、エクセルのある列に「会社名」の列があって、
>  いくつか会社名が載っています。
>  この会社名を1行ずつセルから取得した時に、前カブ・後カブ(/株式会社)がある場合は、
>  これを除いて会社名を表示する、という方法が思い浮かびません。

社名を付ける際の規則(法律)があれば、それを探そうと思ったのですが、
ちょっと探しきれていません。なので、社名の規則によってはNGな方法かもしれませんが、
RegExクラス(System.Text.RegularExpressions名前空間)のReplaceメソッドを使うと
前カブ、後カブを気にしなくてよいので簡単だと思います。
※社名の規則で、社名自体にも株式会社を含めることが許容されていたりすると
 この方法ではダメで、前なのか後なのかを意識した作りにする必要があります。


>  ちなみに省きたい文字列の考えられるパターンは、
>    @「株式会社」
>    A「梶v(記号一文字)
>    B「(株)」(両カッコが全角)
>    C「(株)」(後ろカッコが半角)
>    D「(株)」(前カッコが半角)
>    E「(株)」(両カッコが半角)
>                       です。

上記の条件を元にRegEx.Replaceメソッドを使ってサンプルを作ってみました。

Option Strict On
Imports System.Text.RegularExpressions

Module Test
    Sub Main
        Dim re As New RegEx("(株式会社|掛[((]株[))])")
        Dim inputStrs As String() = New String(){ _
                "株式会社TEST", _
                "株のX株式会社", _
                "(株)テスト半半", _
                "(株)テスト全全", _
                "(株)テスト半全", _
                "(株)テスト全半", _
                "椛蜩摎フ", _
                "ダミー" _
            }

        For Each inputStr As String In inputStrs
            Dim resultStr As String =  re.Replace(inputStr, "")
            Console.WriteLine(resultStr)
        Next
    End Sub
End Module

引用返信 編集キー/
■15230 / inTopicNo.3)  Re[2]: 文字列削除について
□投稿者/ 中博俊 (1250回)-(2008/03/07(Fri) 16:09:28)
規則というか会社法1編2章6条2項ですね。
会社は株式会社、合名会社、合資会社又は合同会社の種類に従い、それぞれその商号中に株式会社〜〜〜〜という文字を用いなければいけない。
6条3項
〜〜〜〜〜誤認されるおそれの文字を用いてはならない。

(株)などは通則です。

17年7月26日法律86号だそうです。

なので法律的には単純リプレースx4で、バッティングや誤削除もないはずです。

引用返信 編集キー/
■15231 / inTopicNo.4)  Re[1]: 文字列削除について
□投稿者/ 魔界の仮面弁士 (674回)-(2008/03/07(Fri) 19:47:21)
No15225 (HappyLove さん) に返信
>  ちなみに省きたい文字列の考えられるパターンは、

ChrW(&H337F) なんてのもありますね。
今回のデータには無いかも知れませんけれども。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -