2014-10-03 1 views
0

Visual Studio 2013을 사용하여 VB.NET에서 작업하고 있습니다. 사용자가 선택한 파일에서 큰 문자열을 읽으려고 시도합니다. 모든 줄 끝 부분에 물결표를 추가해야합니다. 단, 그 줄이 비어 있지 않으면서야합니다. 현재 코드 :.NET Regex 비어 있지 않은 줄 끝에 문자 추가

Dim finalstrANSItext As New List(Of String) 
For Each strANSI As String In strArrANSItext 
    strANSI = Regex.Replace(strANSI, "$", "~") 
    finalstrANSItext.Add(strANSI) 
Next 

이렇게하면 빈 줄을 포함하여 모든 행의 끝에 ~가 추가됩니다.

Dim finalstrANSItext As New List(Of String) 
For Each strANSI As String In strArrANSItext 
    strANSI = Regex.Replace(strANSI, "(.)$", "~") 
    finalstrANSItext.Add(strANSI) 
Next 

내가 원하는대로이 만이 아닌 빈 줄의 끝으로 ~ ​​다 추가하지만 또한 내가 원하지 않는, 모든 라인의 마지막 문자를 제거한다 :

나는이 시도 .

정규 표현식은 내가 말할 수있는 것처럼 나의 장점이 아닙니다. 어떤 도움을 많이 주시면 감사하겠습니다!

답변

0

교체 부품에서 캡처 된 그룹 색인 (그룹 색인 1)을 참조해야합니다.

strANSI = Regex.Replace(strANSI, "(.)$", "$1~") 

또는

는이 문자 앞에 유일의 경우 줄의 끝과 일치하는 lookbehind를 사용합니다. 둘러보기는 너비 어설 션이 아니며 모든 문자를 사용하거나 일치시키지 않습니다.

strANSI = Regex.Replace(strANSI, "(?<=.)$", "~") 
+0

고맙습니다! 둘 다 완벽하게 작동했습니다. 9 분 안에 나에게 대답 할 때 대답 해줄거야 .... –

+0

당신은 천만에요. –

관련 문제