特定の記号に挟まれた文字列を検索するには?

解決


  2004-05-17 19:31:59  No: 113287

お世話になってます。
今文字列の中から何かしらの記号([]や()など)で囲まれた文字列を抽出したいと考えております。
たとえはaioeo[ka]kikukekoの中から[ka]を見つけて切り出すものです。
また1つとは限らず、2、3つほど存在するようなものなのですが、
これを検索する方法がわかりません。
何かよい方法はありますでしょうか。


岡田 之仁  2004-05-17 20:08:17  No: 113288

それは、VB6でですか?VB.NETでですか?
VB.NETなら、

        Dim sr As StreamReader
        Dim rg As Regex
        Dim sz As String
        Dim b() As String

        sr = New StreamReader(Application.StartupPath + "\TEST.CSV")
        sz = sr.ReadToEnd
        sr.Close()

        rg = New Regex("[ka]", RegexOptions.Multiline)
        b = rg.Split(sz)

        For Each sz In b
            Debug.WriteLine(sz)
        Next

で、全て切り出せます。

※  テキストファイルの大きさは考慮していません。
    巨大な場合、文字列に一度に読み込みますので、
    エラーします。

以上。


Say  2004-05-17 20:15:55  No: 113289

Instrなどで順に探していくのがスジですが、
たとえば[と]が必ずペアになっているのであれば、
[でSplitし、第0要素以外の要素を順に]でSplitすれば、
それぞれの第0要素に求める文字列が抽出されます。


  2004-05-17 20:20:49  No: 113290

岡田 之仁様

ご助言ありがとうございます。
おっしゃるとおりVB.NETでございます。

正規表現を使用する方法ですよね。

読み込んだファイルの中から記号で指定した文字列を
抜き出したいのですが、上手くいきません。

たとえばファイルに

あいうえお[test1]かきくけこ[test2]
さしすせそ[test3]なに[test4]ぬねの

の2行があったら結果として
[test1][test2][test3][test4]の4つを抽出したい
ので[]で囲まれた文字列だけを取り出したいのですが
いろいろ正規表現の本をみても
これが実現できる方法がわかりません。
記号を指定する方法がVB.NETの正規表現で
ないでしょうか。


  2004-05-17 20:22:01  No: 113291

Say様

ご助言ありがとうございます。
splitを使用する方法は考えてなかったので
試してみたいと思います。
ありがとうござました。


  2004-05-18 22:39:54  No: 113292

say様よりご助言いただいた方法で実行することができました。
ありがとうございました。
引き続き、正規表現での操作ができないかどうかも
検討したいと思います。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加