a 태그를 삭제해야 할 일이 생겼습니다. 그런데 꽤 글이 길다보니 a 태그에 있는 속성만 골라내어 삭제하는 일이 번거롭군요. 코드를 다음과 같이 간단하게 작성해 보았습니다.
private void RemoveATag()
{
try
{
string result = string.Empty;
string line = string.Empty;
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\beomsang.txt";
StringBuilder s = new StringBuilder();
using (StreamReader sr = new StreamReader(path))
{
while ((line = sr.ReadLine()) != null)
{
line = Regex.Replace(line, "(?:<a.*?>)(.*?)(?:<\\/a>)", delegate (Match match)
{
return match.Groups[1].Value;
});
s.AppendLine(line);
}
}
result = s.ToString();
if (result.EndsWith(Environment.NewLine))
result = result.TrimEnd(Environment.NewLine.ToCharArray());
txtOut.Text = result;
Clipboard.SetText(result);
}
catch (Exception ex)
{
throw ex;
}
}
바탕화면에 있는 텍스트 파일을 읽어서 앵커 태그에 속하는 모든 속성을 제거하는데요, 정규표현식에서 델리게이트를 활용해 보았습니다. 위의 코드를 실행하면, 다음과 같은 결과를 얻을 수 있습니다.
입력값은 다음과 같습니다. 속성은 href 하나만 예시로 해보았습니다.
<div>안녕하세요, 범상입니다.</div>
<p>이것은 <a href="https://www.beomsang.com">beomsang.com</a>으로 연결되는 링크입니다.</p>
출력을 해보았을 때 속성을 정리해 봅니다.
<div>안녕하세요, 범상입니다.</div>
<p>이것은 beomsang.com으로 연결되는 링크입니다.</p>