javascript

정규표현식으로 사이에 있는 내용 가져오기

웹 개발자 승민 2023. 2. 12. 22:46

요구사항

<animal></animal> 태그 내부의 <cat></cat> 태그 내부의 내용 가져오기

Input

const input = `<animal>
    <cat>나비</cat>
    <cat>치즈</cat>
    <dog>바둑이</dog>
    <cat>냥냥이</cat>
</animal>`;

구현

function getNamesIncludeTag(input, type) {
  const reg = new RegExp(`(<${type}>)(.*?)(<\/${type}>)`, "gs");
  const result = input.match(reg);
  return result;
}

function getNamesExcludeTag(input, type) {
  const reg = new RegExp(`(?<=<${type}>)(.*?)(?=<\/${type}>)`, "gs");
  const result = input.match(reg);
  return result;
}

const input = `<animal>
	<cat>나비</cat>
  <cat>치즈</cat>
  <dog>바둑이</dog>
  <cat>냥냥이</cat>
</animal>`;

console.log(getNamesIncludeTag(input, "cat"));
console.log(getNamesExcludeTag(input, "cat"));

결과