[C#] HTML 태그 제거 정규식 delegate match 사용하기 (MatchEvaluator)

이번 주제는 HTML 태그의 일부를 제거하는 정규식에 대해 알아보도록 합시다. 정규표현식으로 원하는 태그 값을 매칭한 다음에, delegate match, 즉 MatchEvaluator를 사용하여 제거하는 예제자료입니다.

HTML 태그 제거 정규식

HTML 태그 제거 정규식

다음과 같은 문자로 된 태그를 정리해 봅시다.

line = "</a></div><div class=\"separator\" style=\"clear: both; text-align: center;\">beomsang</div><div class=\"separator\" style=\"clear: both; text-align: center;\">";

delegate match 사용하기

delegate match

<pre>로 명명한 네임드 그룹은 제거하지 않기 위해 임의로 추가하였습니다. div 태그가 > 문자아 아닌 그리디 정규표현식을 찾고, </div>로 닫히는 순간까지 캡처하여 정리합니다. delegate를 호출하여 MatchEvaluator를 사용하였습니다. 해당 메서드는 캡처 그룹에 대해 네임드 그룹 두 개의 값으로 리플레이스 하는 역할을 합니다.

line = Regex.Replace(line, "(?<pre></a></div>)<div[^>]+>(?<content>[^<]+)</div>", delegate (Match match)
                            {
                                return $"{match.Groups["pre"].Value}<p>{match.Groups["content"].Value}</p>";
                            });

댓글