다음은 텍스트 파일에서 정규식을 사용하여 한 줄에서 일치하는 문자열을 찾으려고하는 C # 코드 줄입니다.
MatchCollection collection = Regex.Matches(readedLine, @"/funcdesc=cls/ && /jobcat=VSO/");
countedChars = collection.Count;
이것은 샘플 텍스트 파일 내용입니다.
2016-01-01 d;D;;D;funcdesc=cls&workcode=file&jobcat=VSO&jobcat=DSO;
2016-01-02 d;D;;D;funcdesc=cls&workcode=file&jobcat=DSO&jobcat=DSO;
예상 총 카운트 출력은 1 이어야합니다.
(1 행이 "funcdesc = cls"및 "jobcat = VSO"가 모두있는 요구 사항을 충족하기 때문에, 그러나 2 행은 "jobcat = VSO"가 없기 때문에 첫 번째 문자열 만 발견했습니다.
"funcdesc = cls"및 "jobcat = VSO"의 순서가 고정되지 않았으므로 (즉, "funcdesc"가 "jobcat"뒤에 올 수 있음) 다음 정규식을 사용하여 두 경우 모두 일치 항목을 캡처 할 수 있습니다. 이를 수행하는 더 효율적인 방법이있을 수 있습니다. 이것은 내 머리 꼭대기에서 벗어난 것입니다.
/funcdesc=cls.+jobcat=VSO|jobcat=VSO.+funcdesc=cls/
이것은 |
정규식에서 "OR"을 말하는 방법입니다. 즉, "funcdesc = cls"다음에 하나 이상의 ( .+
) 문자 다음에 "jobcat = VSO"가 오거나 "jobcat = VSO"다음에 하나 이상의 문자가 이어집니다. "funcdesc = cls".
다음과 일치합니다.
2016-01-01 d;D;;D;funcdesc=cls&workcode=file&jobcat=VSO&jobcat=DSO;
또는
2016-01-01 d;D;;D;jobcat=VSO&workcode=file&funcdesc=cls&jobcat=DSO;
하지만 일치 하지 않습니다
2016-01-02 d;D;;D;funcdesc=cls&workcode=file&jobcat=DSO&jobcat=DSO;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다