2013-02-17 3 views
1

따옴표 또는 괄호 등의 문자열을 변수에 추출 할 수 있기를 원합니다. 예를 들어 내 텍스트는 "안녕하세요"Bob ""일 수 있습니다. 두 개의 따옴표 사이에서 "Bob"이라는 텍스트를 추출하여 나중에 "name"문자열에 넣고 싶습니다. "Hello there (Bob)"도 마찬가지입니다. 나는 이것에 대해 어떻게 갈 것인가? 감사.VB.NET 인용문 또는 다른 기호 사이에 텍스트 가져 오기

=======

죄송 편집 ======, 나는 가난이 말로. 좋아, 그래서 내가 텍스트 상자 (Textbox1)와 버튼이 있다고 말할 수 있습니다. 사용자가 텍스트를 입력 한 경우 : MsgBox "This is My Message"버튼을 누르면 텍스트 만이 내 메시지입니다.

+0

을 사용하면 사용자가이'있는 MsgBox를 입력 할 때 ' "이것은 내 메시지입니다"의미 했습니까? 그 결과는 '이것이 내 메시지'입니다. 귀하의 질문을 바꿔주십시오 – spajce

+0

네, 그게 무슨 뜻인지, 고마워. – TheRyan722

+0

그래서 사용자가 실제로이 단어를 'MsgBox'라고 입력하면 내 메시지가 ''입니까? 그러면이 단어를 표시하고 싶습니다. '이게 내 메세지예요'어디서? – spajce

답변

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 
2

기본적으로 정규 표현식, string.indexof 및 substring의 3 가지 방법이 있으며 마지막으로 문자를 하나씩 반복합니다. 나는 바퀴를 재발 명하고있는 것처럼 후자를 피할 것이다. regexs 또는 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 

임의의 기호에 대해이 작업을 수행해야하는 경우 정규식을 사용해야합니다.

관련 문제