프런트엔드/도서 리뷰

도서 리뷰 시리즈 - 손에 잡히는 정규표현식

조드래곤나인 2023. 7. 18. 15:03

 

 

출처

벤 포터. 『손에 잡히는 정규 표현식』. 김경수(역). 인사이트, 2009.

 

 

한 줄 리뷰

한 권에 자바스크립트 정규표현식을 끝낼 수 있습니다.

 

 

8장 역참조 사용하기

역참조는 정규 표현식 패턴으로, 앞서 일치한 부분을 다시 가리킵니다.

 

검색

시작 태그와 종료 태그를 찾을 때 역참조를 사용하면 유용합니다.

`<body>
<h1>Welcome to my Website</h1>
<h2>ColdFusion</h1>
<H3>Wireless</h3>
</body>`.match(/<[hH][1-6]>.*?<\/[hH][1-6]>/g);
 

시작 태그와 종료 태그가 다른 이름인데도 일치되어 검색되었습니다. 하지만 종료 태그가 다른 태그를 찾는 것은 의도와 다를 것입니다.

[
  "<h1>Welcome to my Website</h1>",
  "<h2>ColdFusion</h1>",
  "<H3>Wireless</h3>"
]
 

역참조를 사용하면 하위 표현식에 일치한 부분을 찾아 사용할 수 있습니다.

`
<body>
<h1>Welcome to my Website</h1>
<h2>ColdFusion</h1>
<H3>Wireless</h3>
</body>
`.match(/<([hH][1-6])>.*?<\/\1>/g);
// ["<h1>Welcome to my Website</h1>"]
 

 

치환

치환을 할 때도 역참조를 사용할 수 있습니다.

`Hello, ben@forta.com is my email address.`
  .replace(/(\w+\@\w+\.\w+)/, '<a href="mailto:$1">$1</a>')
// "Hello, <a href="mailto:ben@forta.com">ben@forta.com</a> is my email address."
 

 

9장 전방 탐색과 후방 탐색

전방 탐색 - 앞으로 찾기

전방 탐색(lookahead) 패턴은 일치 영역을 발견해도 그 값을 반환하지 않는 패턴을 말합니다. 전방 탐색은 실제로는 하위 표현식이며, 하위 표현식과 같은 형식으로 작성합니다. 전방 탐색 패턴의 구문은 ?=로 시작하고 등호(=) 다음에 일치할 텍스트가 오는 하위 표현식입니다.

`
http://www.google.com
https://www.naver.com
ftp://file.net
`.match(/.+(?=:)/g)
// ['http', 'https', 'ftp']
 

 

후방 탐색 - 뒤로 찾기

후방 탐색(lookbehind) 패턴의 구문은 ?<=로 시작하고 등호(=) 다음에 일치할 텍스트가 오는 하위 표현식입니다.

`
Apple : $3.45
Orange : $2.63
Banana : $6.33
`.match(/(?<=\$)[0-9.]+/g)
// ["3.45", "2.63", "6.33"]
 

 

전방 탐색과 후방 탐색 함께 사용하기

`<body>
<h1>Welcome to my Website</h1>
<h2>ColdFusion</h2>
<h3>Wireless</h3>
</body>`.match(/(?<=\<h1\>).*?(?=\<\/h1\>)/g);
// ["Welcome to my Website"]
 

 


 

 

728x90