문자열에서 그룹으로 값을 추출하려고합니다. 내 정규식 내가 경기를 얻고 있지만 그룹이 마지막 5 자리를 얻지 못하고있다문자열 끝의 정규 표현식이 일치하지 않습니다.
string str = @"DEMOV 1'07"" MOT Lifestyle 503080 Pure Rain Nozzle Feb 13 472000";
const string type = @"(?<type>\w+)";
const string minutes = @"((?<minutes>\d+)\')?";
const string seconds = @"((?<seconds>\d+)\"")?";
const string body = @"(?<body>.+)";
const string id = @"(?<id>\s\d{6})?";
var pattern1 = String.Format(@"^{0}(?:\s\w+)?\s({1}{2}|{1}|{2})\s?{3}{4}$", type, minutes, seconds, body, id);
var m1 = Regex.Match(str, pattern1);
입니다.
아무도 내가 여기서 뭘 잘못하고 있다고 말할 수 있습니까?
내가 얻는 결과는 아래에서 확인하십시오.
' . +'욕심이 많으므로 이미 해당 숫자와 일치하므로 선택적 그룹이 일치하지 않습니다. lazy matching에'. +? '를 사용할 수 있습니다. –
예. 그것은 효과가 있었다. 감사합니다. –