2011-11-07 4 views
0

이 정규식 작성하는 방법 :내가 문자열이 같은이 C#을

N:string of unknown length\r\n 

내가 원하는을 "알 수없는 길이의 문자열은"변수로 읽어 보시기 바랍니다. N : 항상 문자열의 시작이며, \ r \ n은 항상 문자열의 끝이므로 모두 사이에 있어야합니다.

내 C#

String pattern ="help needed" 
string result = Regex.IsMatch(pattern,myString).ToString(); 

편집! 미안하지만 나는 내가 원하는 것에 대해 매우 불분명하다는 것을 알았다.

찾고있는 문자열 N:string of unknown length\r\n은 큰 문자열의 부분 문자열입니다. Fx Bla bla\r\n bla bla N:string of unknown length\r\n more bla bla N:string of unknown length\r\n 그리고 한 번만 발생합니다. "N"

+0

당신이 사용할 수있는 http://regexlib.com/RETester.aspx?AspxAutoDetectCookieSupport=1 또는 유사한 온라인 서비스 :

당신은 다음과 같은 패턴을 사용할 수 있습니다 주위에 놀아 "정규식 패턴으로 ... 이것은 때때로 다소 편리합니다 ... – Yahia

+0

'문자열'은 '선'과 매우 유사합니다. ReadLine()을 사용하면 문제의'\ r \ n '부분을 풀 수 있습니다. –

답변

7

은 항상로 시작하면 항상로 끝나는 "\ 연구 \ n"당신은 모두에서 정규 표현식을 필요로하지 않습니다 - 당신은 그냥 하위 문자열 사용할 수 있습니다 : 그것은 가정 것 (

string result = text.Substring(2, text.Length - 4); 

"\ r \ n"은 실제로 두 개의 개별 문자 '\ r'및 '\ n'을 의미합니다 .4자를 의미하는 경우 4를 6으로 변경하십시오.)

유효성 검사도 수행하려면 , 나는 다음을 사용한다 :

if (text.StartsWith("N:") && text.EndsWith("\r\n")) 
{ 
    string result = text.Substring(2, text.Length - 4); 
} 
+0

미안하지만 나는 내가 원한 것에 대해 매우 분명하지 않았습니다. 찾고있는 문자열 N : 알 수없는 길이의 문자열 \ r \ n 큰 문자열의 부분 문자열입니다. Fx Bla bla \ r \ n bla bla N : 알 수없는 길이의 문자열 \ r \ n more bla bla N : 알 수없는 길이의 문자열 \ r \ n 그러면 한 번만 발생합니다. – lmkk

+0

@lmkk :이 경우'string.IndexOf'를 두 번 사용하고'substring'을 사용하면됩니다. 아마 정규 표현식을 사용하는 대신에 그렇게 할 수있을 것이라고 생각합니다. 오, 그리고 \ r \ n이 실제로 두 개의 백 슬래시 또는 두 개의 제어 문자를 포함하는 4 개의 문자인지 여부는 아직 명확하지 않습니다. –

+0

그것은 문자열의 문자 \ r \ n입니다 (문자열로 디코딩 된 제어 문자입니다). – lmkk

0

t 정규 표현식없이 이것을 작성할 수 있습니다. 정규 표현식을 사용하여 이것을 작성하는 방법을 알고 싶다면 이것을 게시하고 있습니다. "에

N:(.*)\\r\\n 
string pattern = "N:(.*)\\r\\n"; 
string text = "N:Hello String World \r\n"; 
Regex r = new Regex(pattern, RegexOptions.IgnoreCase); 
Match m = r.Match(); 
if(m.Success){ 
    Console.WriteLine("Extracted text:"+ m.Groups[0]); 
} 
0
//Regex.IsMatch(pattern,myString)//IsMatch is test, pattern <-> myString , Reverse the order 
string pattern ="N:(.+)$";//. is not newline 
string result = Regex.Match(myString, pattern).Groups[1].ToString();