お世話になってます。
今文字列の中から何かしらの記号([]や()など)で囲まれた文字列を抽出したいと考えております。
たとえはaioeo[ka]kikukekoの中から[ka]を見つけて切り出すものです。
また1つとは限らず、2、3つほど存在するようなものなのですが、
これを検索する方法がわかりません。
何かよい方法はありますでしょうか。
それは、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
で、全て切り出せます。
※ テキストファイルの大きさは考慮していません。
巨大な場合、文字列に一度に読み込みますので、
エラーします。
以上。
Instrなどで順に探していくのがスジですが、
たとえば[と]が必ずペアになっているのであれば、
[でSplitし、第0要素以外の要素を順に]でSplitすれば、
それぞれの第0要素に求める文字列が抽出されます。
岡田 之仁様
ご助言ありがとうございます。
おっしゃるとおりVB.NETでございます。
正規表現を使用する方法ですよね。
読み込んだファイルの中から記号で指定した文字列を
抜き出したいのですが、上手くいきません。
たとえばファイルに
あいうえお[test1]かきくけこ[test2]
さしすせそ[test3]なに[test4]ぬねの
の2行があったら結果として
[test1][test2][test3][test4]の4つを抽出したい
ので[]で囲まれた文字列だけを取り出したいのですが
いろいろ正規表現の本をみても
これが実現できる方法がわかりません。
記号を指定する方法がVB.NETの正規表現で
ないでしょうか。
Say様
ご助言ありがとうございます。
splitを使用する方法は考えてなかったので
試してみたいと思います。
ありがとうござました。
say様よりご助言いただいた方法で実行することができました。
ありがとうございました。
引き続き、正規表現での操作ができないかどうかも
検討したいと思います。