間の文字列の一部を取得しようとしています [
そして ]
。これまでのところ私はこれを持っています:
For Each a As String In CType(TabControl1.SelectedTab.Controls.Item(0),
RichTextBox).Text.Split(System.Environment.NewLine())
If (a.Contains("print ")) Then
Dim sData As String
sData = a.Substring(6)
Dim i, j As Integer
i = sData.IndexOf("[") + "[".Length
j = sData.IndexOf("]") - i
Dim sData1 As String
sData1 = sData.Substring(i, j)
Console.WriteLine(sData1)
End If
Next
ただし、これがある場合:
print [Hello world!]
print [What"s up world?]
それから出力はこれです:
Hello world!
ただし、必要な出力は次のとおりです。
Hello world!
What"s up world
つまり初回以降は何も表示されません print
見つかった。
それで、なぜそれが起こっているのですか、どうすれば修正できますか?
回答:
回答№1は1あなたは使用していません 厳格なオプション その結果、あなたはそれを言われません Split(System.Environment.NewLine())
CRLFをCRに切り捨てています。 RichTextBoxの行はLFで区切られます。
簡単な解決策は、 .Lines
RTBのプロパティ:
For Each a As String In CType(TabControl1.SelectedTab.Controls.Item(0), RichTextBox).Lines
回答№2の場合は0
Uは正規表現を使用できますが、これは非正規表現ソリューションです
"U can also use a loop(This is a working solution)
Dim mystring = "print [Hello world]" + Environment.NewLine + "Print [What"s up world?]" + ........
For Each line In mystring.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
Dim hloWorld = line.Split("[")(1)
Dim result = hloWorld.Replace("]", "")
Dim finalResult = result + Environment.NewLine
"""Do what u wanna do with ur final result
Next