밥탄이 기록일지
CheckMate RPA C# 정규표현식 (2) HTML 형식 파악하기 본문
2) 정규표현식을 이용하여 HTML 값 내부에 있는 HTML 태그 형식 파악하기
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Text;
// 정규표현식 옵션
using System.Text.RegularExpressions;
public partial class CustomScript
{
public void Execute_Code()
{
string news = "\n\t\t\t<앵커><br><br>오늘(<span data-type=ore data-lang=en>16</span>일)은 주로 남부 지방을 중심으로 적잖은 비가 올 걸로 보입니다. 지금은 전북 지역에 비가 많이 내리고 있습니다. 기상센터 연결해서 오늘 날씨 자세히 알아보겠습니다.<br><br>안수진 캐스터 전해주시죠.<br><br><기상캐스터><br><br>정체전선이 남하하면서 현재 호남 지역을 중심으로 세찬 비가 내리고 있습니다.<br><br>제 옆으로는 나주 영산강의 모습 보이고 있는데요.<br><br>평상시에는 영산강이 잔잔한 물결이지만 비가 많이 내리면서 유속이 빨라진 모습 보실 수 있습니다.<br><br>레이더 영상을 함께 보시면 폭이 좁고 동서로 길게 형성된 비구름대가 전북과 경북 지역에 자리하고 있고요.<br><br>특히 붉은색을 넘어서 보라색으로 보이고 있는 전주시에는 시간당 <span data-type=ore data-lang=en>45mm</span> 안팎의 세찬 비가 내리고 있습니다.<br><br>따라서 전주와 완주 등 일부 전북 북부 지역에 호우경보가 그 밖의 호남과 충남 남부, 경북 남서부 지역에도 호우주의보 발효 중입니다.<br><br>앞으로 남해안 지역에 많게는 <span data-type=ore data-lang=en>150mm</span> 이상의 집중호우가 예상되고요.<br><br>그 밖의 남부와 제주 지역에 <span data-type=ore data-lang=en>30mm</span>에서 최고 <span data-type=ore data-lang=en>100mm</span>, 충청 남부와 경북 북부, 동해안 지역에도 <span data-type=ore data-lang=en>5~40mm</span>의 비가 예상됩니다.<br><br>여기에 남부와 또 동쪽 산지를 중심으로는 바람까지 매우 강하게 불어서 안전 사고 주의하셔야겠습니다.<br><br>서울의 비는 끝이 났고요.<br><br>지금 내리는 비도 늦은 오후면 대부분 그치겠지만 전남과 경남 지역은 내일 오후까지 제주 지역은 모레까지도 이어지는 곳이 있겠습니다.<br><br>현재 강릉의 기온 <span data-type=ore data-lang=en>29.7</span>도 등 오늘 아침도 곳곳에 열대야 나타나고 있고요.<br><br>폭염특보는 제주를 제외하고 모두 해제된 가운데 낮 기온 <span data-type=ore data-lang=en>30</span>도 안팎이 예상됩니다.\n\t\t";
PrintLog("sub" + regular(news));
PrintLog("Final : " + regular(news).Replace("\n","").Replace("\t",""));
}
public string regular(string tmp)
{
string temp = tmp;
//string pattern1 = @"span";
// pattern2 = &[a-zA-Z]; 를 매치하여 해당 값만 Replace
string pattern2 = @"&[a-zA-Z]*;";
Regex rg = new Regex(pattern2);
MatchCollection matched = rg.Matches(temp);
for(int i = 0; i < matched.Count; i++)
{
//PrintLog(matched [i].Value.ToString());
temp = temp.Replace(matched [i].Value, string.Empty);
}
// pattern3 = <> 안의 데이터를 매치하여 해당 값만 Replace
// string pattern3 = @"</?[a-zA-Z]*>";
string pattern3 = @"</?[a-zA-Z]*?\s?[a-zA-Z]*?-?[a-zA-Z]*?=?[a-zA-Z]*?\s?[a-zA-Z]*?-?[a-zA-Z]*?=?[a-zA-Z]*?>";
Regex rg2 = new Regex(pattern3);
MatchCollection matched2 = rg2.Matches(temp);
for(int i = 0; i < matched2.Count; i++)
{
// PrintLog("Matched2 : " + matched2 [i].Value);
temp = temp.Replace(matched2 [i].Value, string.Empty);
}
return temp;
}
}
정규표현식 Regex 를 사용하기 위해선 using System.Text.RegularExpression 을 포함해야함
예시로 네이버 기사를 통째로 넣어두고
기사 내부에 있는 HTML 태그 (< > <span>, </span> 등등) 를 모두 삭제하고 싶은 경우
pattern2 , pattern3 를 이용하여 2번에 걸쳐 태그들을 삭제하는 과정을 거친다
Pattern2 의 경우 &과 ;사이에 있는 영문을 삭제하고
Pattern3 의 경우 <> 안에 있는 영문 및 특수문자를 삭제하도록 만들어져있다.
또한 결과에 \n \t 가 발생할 수 있어 이건 최종 결과 프린트에서 삭제하도록 설정해두었다.
위 예제에 대한 결과
sub
앵커오늘(16일)은 주로 남부 지방을 중심으로 적잖은 비가 올 걸로 보입니다. 지금은 전북 지역에 비가 많이 내리고 있습니다. 기상센터 연결해서 오늘 날씨 자세히 알아보겠습니다.안수진 캐스터 전해주시죠.기상캐스터정체전선이 남하하면서 현재 호남 지역을 중심으로 세찬 비가 내리고 있습니다.제 옆으로는 나주 영산강의 모습 보이고 있는데요.평상시에는 영산강이 잔잔한 물결이지만 비가 많이 내리면서 유속이 빨라진 모습 보실 수 있습니다.레이더 영상을 함께 보시면 폭이 좁고 동서로 길게 형성된 비구름대가 전북과 경북 지역에 자리하고 있고요.특히 붉은색을 넘어서 보라색으로 보이고 있는 전주시에는 시간당 45mm 안팎의 세찬 비가 내리고 있습니다.따라서 전주와 완주 등 일부 전북 북부 지역에 호우경보가 그 밖의 호남과 충남 남부, 경북 남서부 지역에도 호우주의보 발효 중입니다.앞으로 남해안 지역에 많게는 150mm 이상의 집중호우가 예상되고요.그 밖의 남부와 제주 지역에 30mm에서 최고 100mm, 충청 남부와 경북 북부, 동해안 지역에도 5~40mm의 비가 예상됩니다.여기에 남부와 또 동쪽 산지를 중심으로는 바람까지 매우 강하게 불어서 안전 사고 주의하셔야겠습니다.서울의 비는 끝이 났고요.지금 내리는 비도 늦은 오후면 대부분 그치겠지만 전남과 경남 지역은 내일 오후까지 제주 지역은 모레까지도 이어지는 곳이 있겠습니다.현재 강릉의 기온 29.7도 등 오늘 아침도 곳곳에 열대야 나타나고 있고요.폭염특보는 제주를 제외하고 모두 해제된 가운데 낮 기온 30도 안팎이 예상됩니다.
Final : 앵커오늘(16일)은 주로 남부 지방을 중심으로 적잖은 비가 올 걸로 보입니다. 지금은 전북 지역에 비가 많이 내리고 있습니다. 기상센터 연결해서 오늘 날씨 자세히 알아보겠습니다.안수진 캐스터 전해주시죠.기상캐스터정체전선이 남하하면서 현재 호남 지역을 중심으로 세찬 비가 내리고 있습니다.제 옆으로는 나주 영산강의 모습 보이고 있는데요.평상시에는 영산강이 잔잔한 물결이지만 비가 많이 내리면서 유속이 빨라진 모습 보실 수 있습니다.레이더 영상을 함께 보시면 폭이 좁고 동서로 길게 형성된 비구름대가 전북과 경북 지역에 자리하고 있고요.특히 붉은색을 넘어서 보라색으로 보이고 있는 전주시에는 시간당 45mm 안팎의 세찬 비가 내리고 있습니다.따라서 전주와 완주 등 일부 전북 북부 지역에 호우경보가 그 밖의 호남과 충남 남부, 경북 남서부 지역에도 호우주의보 발효 중입니다.앞으로 남해안 지역에 많게는 150mm 이상의 집중호우가 예상되고요.그 밖의 남부와 제주 지역에 30mm에서 최고 100mm, 충청 남부와 경북 북부, 동해안 지역에도 5~40mm의 비가 예상됩니다.여기에 남부와 또 동쪽 산지를 중심으로는 바람까지 매우 강하게 불어서 안전 사고 주의하셔야겠습니다.서울의 비는 끝이 났고요.지금 내리는 비도 늦은 오후면 대부분 그치겠지만 전남과 경남 지역은 내일 오후까지 제주 지역은 모레까지도 이어지는 곳이 있겠습니다.현재 강릉의 기온 29.7도 등 오늘 아침도 곳곳에 열대야 나타나고 있고요.폭염특보는 제주를 제외하고 모두 해제된 가운데 낮 기온 30도 안팎이 예상됩니다.
'CheckMate RPA' 카테고리의 다른 글
CheckMate RPA C# 정규표현식 (3) IP 형식 파악하기 (0) | 2023.04.12 |
---|---|
CheckMate RPA C# 정규표현식 (1) 핸드폰 번호 형식 파악하기 (0) | 2023.04.12 |
CheckMate RPA C# PDF to Excel 변환하기 (SautinSoft.PdfFocus.dll) (0) | 2023.04.12 |
CheckMate RPA C# Excel Script (0) | 2023.04.12 |
CheckMate RPA C# Json 데이터 정제하기 (Newtonsoft.Json.dll) (0) | 2023.04.12 |