2012-10-02 2 views
0

VB.NET의 정규 표현식에 몇 가지 문제가 있습니다. "[Type=User][User=Hello]Thats the message" 나는 "Thats the message" 부분을 갖고 싶어VB.NET 정규 표현식으로 문자열 바꾸기

는, 그래서 가장 좋은 방법은 그 ""에 대한 "[Type=User][User=Hello]"를 교체했다 할 생각 :

나는 이와 같은 문자열이있다.

주 :

  • "Thats the message"은 문자열의 끝에서 항상 그것이 (문자없이) "" 수 있습니다. 그것은 작동하지 않습니다

    Dim regOptions As RegexOptions = RegexOptions.IgnoreCase Or RegexOptions.Singleline 
    Regex.Replace(buffer, "^(.*)[^\]]*$", "", regOptions) 
    

    :

  • [Type=XXXX] 그래서, 여기

내가 무슨 짓을 ... 나는 그것이 [Type=Password], [Type=Message] 할 수있다, 의미, 무엇이든 할 수있다 'buffer'문자열은 수정되지 않습니다.

+0

가 기분이 언짢아이에 대한'String.Split'을 사용할 수, 사용']'구분 기호 문자로? – Oded

답변

3

the documentation of that overload에 따르면 결과 문자열을 반환합니다 (결국 .Net 문자열은 변경 불가능 함).

그래서, 대신, 시도 :

buffer = Regex.Replace(buffer, "^(.*)[^\]]*$", "", regOptions) 
+0

오른쪽. 또한 나는 그 패턴이 효과가 있다고 생각하지 않는다. 왜 단지'\ [. * \]'가 아닌가? – sloth

+1

더 나은 패턴은'\ [([^ \]] +) \]'일 수 있습니다. 그러나 대체가 아무 것도하지 않는 이유는 결과가 읽히지 않았기 때문입니다. –

관련 문제