0

私はこの文字列を持っています:

S40102S40078S40079S40080S40053S40052S40051S40050

しかし、私のコード

Dim MyArray() As String = MyString.Split("S")

Sを削除しますが、それを保持したいです。RegExを試しましたが、機能しません。助けていただければ幸いです。

ありがとう

4

3 に答える 3

0

これで正規表現が機能すると思います。このようなもの:

Dim input As String = "S40102S40078S40079S40080S40053S40052S40051S40050"
Dim regex As Regex = New Regex("([^S])*[S]")
Dim ms As MatchCollection = regex.Matches(input)
Dim MyArray() As String
Dim ctr As Integer = 0

'loop through them all
foreach(m As Match In ms)
{
    'assign to array
    MyArray(ctr) = m.Value

    'increase counter
    ctr += 1
}

これはテストされておらず、C# からの移植であるため、構文が少しずれている可能性がありますが、非常に近いものです。

于 2012-11-22T13:33:34.093 に答える
0

Sその区切り文字で分割する前に、数字の間に区切り文字を追加してみてください。例えば

Dim MyArray() As String = Regex.Replace(MyString, "(\d)S", "$1-S").Split("-")

注: VB.NET は私の最初の言語ではないため、構文が正しいことを確認してください

于 2012-11-22T11:50:24.813 に答える
0

「S」の前の長さがゼロの一致で、正の先読みと分割を使用できます。(?=S)

これがVBで機能することを願っています。

@Oded さん、コメントありがとうございます。最初の S での分割を避けるには、次のようなことができます。(?=[^\a]S)

于 2012-11-22T11:41:34.973 に答える