2

複数回発生する長い文字列行から特定の文字を取得する必要があります。文字列は次のようになります。

<Press T><Press Left><Press A><Press C><Press P><Press U><Press G><Press P><Press NumPad7><Press NumPad7><Press A>

の各セットをループして<>'s、単語が出現するたびに情報を取得する必要がありますPress。したがって、この場合、情報が必要になりますT, Left, A, C, P, etc

4

4 に答える 4

2

常に同じ形式であると仮定すると、これを 1 行で実行できます。形式が異なる可能性がある場合は、正規表現の方が適しています(たとえば、空白の乱数など)。

Dim myString As String = "<Press T><Press Left><Press A><Press C><Press P><Press U><Press G><Press P><Press NumPad7><Press NumPad7><Press A>"
Dim character As String() = myString.Split(New String() {"<Press ", ">"}, StringSplitOptions.RemoveEmptyEntries)
于 2013-07-03T13:44:52.253 に答える
2

Stringこの純粋なメソッドのアプローチが最も効率的だと思いますが、形式を厳密にする必要があります。

Dim text = "<Press T><Press Left><Press A><Press C><Press P><Press U><Press G><Press P><Press NumPad7><Press NumPad7><Press A>"
Dim allKeys As New List(Of String)
Dim pattern = "Press "
Dim index = text.IndexOf(pattern)
While index >= 0
    index += pattern.Length
    Dim endIndex = text.IndexOf(">", index)
    If endIndex >= 0 Then
        Dim nextKey = text.Substring(index, endIndex - index)
        allKeys.Add(nextKey)
        index = text.IndexOf(pattern, endIndex + 1)
    Else
        Exit While
    End If
End While

Console.Write(String.Join(", ", allKeys))

出力:T, Left, A, C, P, U, G, P, NumPad7, NumPad7, A


Regexすべての一致を返す は次のとおりです。2 番目のグループで押された「キー」が見つかります。

pattern = "<Press ([^>]+)>"
Dim regex = New Regex( pattern, RegexOptions.Compiled And RegexOptions.IgnoreCase)
For Each match As Match In regex.Matches(text)
    Console.WriteLine(match.Groups(1))
Next
于 2013-07-03T13:31:19.160 に答える
1
    Dim s As String = "<Press T><Press Left><Press A><Press C><Press P><Press U><Press G><Press P><Press NumPad7><Press NumPad7><Press A>"
    Dim ss() As String = s.Replace("<Press ", "").Split(">"c)
    For i as integer = 0 to ss.count - 2
       Debug.Print(ss(i))
    Next

出力:

T
Left
A
C
P
U
G
P
NumPad7
NumPad7
A

配列 ss は、最後の ">" が によって別の区切り文字として扱われるため、キーを押した回数よりも 1 長いことに注意してください。最後の ">".splitはいつでも削除できます。

于 2013-07-03T13:33:58.470 に答える
1

正規表現の略である RegEx は、文字列を解析する簡単な方法です。このサイトは、.NET での RegEx の使用に関する適切な情報を提供します。それが私が学んだ方法です。このサイトでは、RegEx に関する一般的な情報も提供しています。

編集: RegEx 式の作成は複雑になる場合があります。それを支援する優れたツールがExpressoです。非常に複雑な式を最小限の労力で作成およびテストするのに役立ちます。

于 2013-07-03T13:23:59.453 に答える