私はこの文字列を持っています:
S40102S40078S40079S40080S40053S40052S40051S40050
しかし、私のコード
Dim MyArray() As String = MyString.Split("S")
Sを削除しますが、それを保持したいです。RegExを試しましたが、機能しません。助けていただければ幸いです。
ありがとう
これで正規表現が機能すると思います。このようなもの:
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# からの移植であるため、構文が少しずれている可能性がありますが、非常に近いものです。
S
その区切り文字で分割する前に、数字の間に区切り文字を追加してみてください。例えば
Dim MyArray() As String = Regex.Replace(MyString, "(\d)S", "$1-S").Split("-")
注: VB.NET は私の最初の言語ではないため、構文が正しいことを確認してください
「S」の前の長さがゼロの一致で、正の先読みと分割を使用できます。(?=S)
これがVBで機能することを願っています。
@Oded さん、コメントありがとうございます。最初の S での分割を避けるには、次のようなことができます。(?=[^\a]S)