2

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

=======编辑======

对不起,我措辞不好。好的,可以说我有一个文本框(Textbox1)和一个按钮。如果用户输入文本: MsgBox "THIS IS MY MESSAGE" 我希望当按下按钮时,只显示文本 THIS IS MY MESSAGE。

4

2 回答 2

2

基本上有三种方法——正则表达式、string.indexof 和 substring,最后一个一个地循环遍历字符。我会避免后者,因为它只是在重新发明轮子。是否使用正则表达式或 indexof 取决于您的需求和数据的复杂性。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

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

于 2013-02-17T23:35:07.103 回答
2

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

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
于 2013-02-18T09:12:31.083 回答