• ベストアンサー

VB2010にて指定した文字の抽出

テキストボックスに、下記のように文字列が有ります。 そこで、2つ目の'>'以降の'RD 潜脳調査室 'という文字や 'i-wish you were here- 'を抽出したいのです。 2つ目の'>'以降の文字列や'あ'は変化します。 'トップページ > あ > RD 潜脳調査室' ↑や↓のような文字列。 'トップページ > あ > i-wish you were here-'

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

No.3です。 Imports System.Text.RegularExpressions ' 追加 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim st As String = "トップページ > あ > RD 潜脳調査室" ' \s は半角スペースが1個あるとして ' もしない場合は削除してくださいね ↓ Dim re As New Regex("トップページ\s>[^>]+?>\s(?<name>[^>]+)>*") Dim m As String = re.Match(st).Result("${name}") MsgBox(m) End Sub End Class 変数:stにはソースが代入されているとした場合の参考になれば。

その他の回答 (4)

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.4

こんな感じでどうでしょうか。 Sub test() Dim str As String Dim pos As Long str = textbox.Value pos = InStr(InStr(str, ">") + 1, str, ">") If pos = 0 Then MsgBox "error!" Exit Sub End If str = Right(str, Len(str) - pos) pos = InStr(str, ">") If pos = 0 Then str2 = str Else str2 = Left(str, pos - 1) End If MsgBox str2 End Sub

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

これが単なる文字列からの抽出なら良いのですが、 Webページからの抽出だとそのページによって 方法が変わるかも知れませんね。

回答No.2

単純に、「>」でSplit()して3番目の要素で良いのでは? ' 区切りで分割して配列に格納する Dim stArrayData As String() = Split(textBox.Text, ">") If 2 < stArrayData.Length Then '要素が3個以上の場合 MessageBox(stArrayData(2)) End If

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.1

補足をお願いします。 「>」は2つだけしか出てこないのでしょうか? たとえば、 トップページ > あ > RD 潜脳調査室 > い > う のような場合もあるのでしょうか? このような場合、抽出 するのは2つ目の「>」以降全部ではなくて、「RD 潜脳調査室」だけ?

IrohaKujoh
質問者

補足

回答ありがとうございます。 補足をします。 「>」は、トップページ > あ > RD 潜脳調査室 > Wanderland の様に出てきます。 抽出するのは「RD 潜脳調査室」だけです。 宜しくお願いします。

関連するQ&A