RegEx 일치를 사용하여 주어진 문자열에서 값을 추출하는 데 문제가 있습니다. 작업중인 문자열이 아래에 나와 있습니다.간단한 C# 정규식 일치 문제
X 1,981mm533, 35mm 두꺼운 - 비 화재 문 : £ 33.14
내가 가진 정규식 문자열
533 X 1,981mm을 다음과 같다 경우 잘 작동하는 것입니다, 35mm 두께 : £ 33.14
^(?<first>\d+)\s*x\s*(?<second>\d+)mm,\s*(?<third>\d+)mm Thick: £(?<price>\d+\.\d+)$
내 질문에 내가 다시를 변경하는 방법입니다 gEx는 마지막 'mm'과 '£'기호를 무시합니다.
내 코드에서 밀리미터 단위로 측정 한 값을 인치로 변환하고 문자열을 내 메서드로 반환합니다. 나머지 코드는 다음과 같습니다.
var first = Int32.Parse(match.Groups["first"].Value);
var second = Int32.Parse(match.Groups["second"].Value);
var third = Int32.Parse(match.Groups["third"].Value);
var price = Decimal.Parse(match.Groups["price"].Value, CultureInfo.InvariantCulture);
감사합니다.
어쩌면 내가 당신의 질문을 이해하지 않지만 shuldn't '^ (? \ D +) \ S * X \ * mm (d 개 + \? ), \는 *의의 (? \ D +) mm * * (? \ d + \. \ d +) $'트릭을합니까? –
는 내가 볼 수있는 한 멀리 작동해야하지만 * 위험합니다. 욕심이 일치 할 수 있습니다. 만약 당신이 단지 하나의 금액을 보길 기대한다면 : 일치하는 mm 다음 전체 문자열에서 £ 00.00 다음 괜찮아요. 실제로 그 문자열의 끝에 일치하는 편집 실제로 다음 예, 걱정하지 마십시오 작동해야합니다 –