[C#] Regex, ol 태그 사이에 있는 모든 p 태그 제거하는 방법

웹 개발에서는 종종 HTML 콘텐츠를 처리해야 할 때가 많습니다. 특히, 특정 태그를 제거하거나 수정하는 작업은 자주 발생합니다. 오늘은 C#을 사용하여 HTML 문서에서 <ol> 태그 안의 <p> 태그를 제거하는 방법을 살펴보도록 해요. 이 방법을 통해 웹 페이지의 구조를 보다 간결하게 만들 수 있습니다~

목표, ol 태그 사이의 p 태그 제거하기

아래에 주어진 HTML 문자열에는 <ol> 태그가 포함되어 있으며, <ol> 태그 안에는 여러 개의 <li> 태그와 <p> 태그가 섞여 있습니다. 목표는 <ol> 태그 안의 모든 <p> 태그를 제거하고, 나머지 내용을 유지해 보도록 합시다.

코드 예시

아래는 이 작업을 실행하는 C# 코드입니다.

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string input = @"
<h2>쿼리 설명</h2>
<ol>
    <li><p>1</p></li>
    <li><p>2</p></li>
    <li><p>3</p></li>
    <li><p>4</p>
        <ul>
            <li><p>4-1</p></li>
            <li>4-2</li>
        </ul>
    </li>
    <li><p>5</p></li>
</ol>";

        // <ol>과 </ol> 사이의 내용 찾기
        string pattern = @"<ol>(.*?)</ol>";
        Match match = Regex.Match(input, pattern, RegexOptions.Singleline);

        if (match.Success)
        {
            // <ol> 내의 내용 추출
            string olContent = match.Groups[1].Value;

            // <p> 태그 제거
            string cleanedContent = Regex.Replace(olContent, @"<p>(.*?)</p>", "$1");

            // 결과 HTML 구성 (h2 태그와 합치기)
            string resultHtml = Regex.Replace(input, pattern, $"<ol>{cleanedContent}</ol>", RegexOptions.Singleline);

            // 결과 출력
            Console.WriteLine(resultHtml);
        }
    }
}

코드 설명

  1. 입력 문자열: 위의 코드에서는 input 변수에 HTML 문자열을 정의합니다. 이 문자열은 <h2> 태그와 여러 <ol><li> 태그를 포함하고 있습니다.
  2. 정규 표현식:
    • @"<ol>(.*?)</ol>": 이 패턴은 <ol> 태그와 </ol> 태그 사이의 내용을 찾습니다.
  3. Match 객체: Regex.Match를 사용하여 입력 문자열에서 <ol> 태그와 그 사이의 내용을 찾아냅니다. 이 경우, match.Groups[1].Value<ol> 내의 내용을 반환합니다.
  4. Regex.Replace 메서드: 이 메서드를 사용하여 <p> 태그를 제거합니다. "
  5. 입력 문자열: 위의 코드에서는 input 변수에 HTML 문자열을 정의합니다. 이 문자열은 <h2> 태그와 여러 <ol><li> 태그를 포함하고 있습니다.

  6. 정규 표현식:

    • @"<ol>(.*?)</ol>": 이 패턴은 <ol> 태그와 </ol> 태그 사이의 내용을 찾습니다.
  7. Match 객체: Regex.Match를 사용하여 입력 문자열에서 <ol> 태그와 그 사이의 내용을 찾아냅니다. 이 경우, match.Groups[1].Value<ol> 내의 내용을 반환합니다.

  8. Regex.Replace 메서드: 이 메서드를 사용하여 <p> 태그를 제거합니다. "$1"은 첫 번째 그룹(즉, <p> 태그 사이의 내용을 의미합니다).

  9. 결과 HTML 구성: 수정된 <ol> 내용을 포함하여 최종 결과를 출력합니다.

  10. "은 첫 번째 그룹(즉, <p> 태그 사이의 내용을 의미합니다).
  11. 결과 HTML 구성: 수정된 <ol> 내용을 포함하여 최종 결과를 출력합니다.

실행 결과

위의 코드를 실행하면 다음과 같은 HTML 결과물을 출력해요.

<h2>쿼리 설명</h2>
<ol>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
        <ul>
            <li>4-1</li>
            <li>4-2</li>
        </ul>
    </li>
    <li>5</li>
</ol>

결론

C#에서 정규 표현식을 사용하여 HTML 문자열을 처리하는 방법을 살펴보았습니다. 이와 같은 방법은 HTML 문서에서 특정 패턴을 추출하거나 수정할 때 유용하게 사용할 수 있습니다. 필요에 따라 정규 표현식의 패턴을 변경하여 다른 태그를 제거하거나 수정하는 데 응용해 보세요.

*해당 예시는 ol 태그가 하나일 때를 전제로 합니다~

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗