VB.NET在引号或其他符号之间获取文本

时间:2013-02-17 23:08:29

标签: vb.net string

我希望能够在引号或括号等之间为变量提取字符串。例如,我的文字可能是“Hello there”Bob“”。我想从两个引号之间提取文本“Bob”,并将其放在字符串“name”中供以后使用。 “Hello there(Bob)”也是如此。我该怎么做?感谢。

======= EDIT ==

对不起,我措辞不好。好的,我们假设我有一个文本框(Textbox1)和一个按钮。如果用户输入文本:MsgBox“这是我的消息”我希望当按下按钮时,只显示文本这是我的消息。

2 个答案:

答案 0 :(得分:2)

基本上有三种方法 - 正则表达式,string.indexof和substring,最后逐个循环遍历字符。我会避免使用后者,因为它只是重新发明轮子。是否使用正则表达式或索引取决于您的需求和数据的复杂性。 Indexof有点罗嗦,但相当简单,可能只是你想要的东西。

Dim str as String = "Hello there ""Bob"""
Dim startName as Integer 
Dim endName as Integer
Dim name as String = ""

startName = str.IndexOf("""")
endName = str.Indexof("""", If(startName > 0, startName,0))
If (endName>startName) Then
    name = str.SubString(startName, endName)
End If

如果您需要为任意符号执行此操作,那么您需要正则表达式。

答案 1 :(得分:1)

这是一个非常简单的解决方案:

Dim sAux() As String = TextBox1.Text.Split(""""c)
Dim sResult As String = ""

If sAux.Length = 3 Then
    sResult = sAux(1)
Else
    ' Error or something (number of quotes <> 2)
End If