입력 문자열에 "a -> b, c, d"패턴을 찾으려고합니다. 내가 사용하고 패턴은은 다음과 같다 :EOL 특수 문자가 일치하지 않음
"^[ \t]*(\\w+)[ \t]*->[ \t]*(\\w+)((?:,[ \t]*\\w+)*)$"
이 패턴은 C#을 패턴은 "\의 t"는 표를 말한다 (그 하나의 탈출 litteral은 .NET 문자열 API에 의해 해석하여)의 "\ w"는 잘 알려진 regex litteral 미리 정의 된 클래스를 가리키며, .NET STring API에 의해 "\ w"로 해석되도록 이중 이스케이프 처리 된 다음 .NET Regex API에 의해 "단어 클래스"로 해석됩니다.
입력은 :
a -> b
b -> c
c -> d
함수이다
는private void ParseAndBuildGraph(String input) {
MatchCollection mc = Regex.Matches(input, "^[ \t]*(\\w+)[ \t]*->[ \t]*(\\w+)((?:,[ \t]*\\w+)*)$", RegexOptions.Multiline);
foreach (Match m in mc) {
Debug.WriteLine(m.Value);
}
}
출력은 : 실제로
c -> d
, "$"를 종료 선에 문제가 특수 숯. "$"앞에 "\ r"을 삽입하면 작동하지만, "$"는 여러 줄 끝과 (여러 줄 옵션과) 일치합니다 (특히 Windows 환경에서는 \ r \ n). 그렇지 않은가?
+1 믿을 수가 없어 ... –
답장을 보내 주셔서 감사합니다. 그리고 실제로 그것은 놀라운 결론입니다. –
c/C++에서 O_BINARY 플래그와 같은 데이터를 시스템이 일치하도록 설정할 수있는 플래그가 있는지 궁금합니다. – Dave