>웹 프론트엔드 >JS 튜토리얼 >여러 줄의 콘텐츠를 JavaScript 정규 표현식과 일치시키는 방법은 무엇입니까?

여러 줄의 콘텐츠를 JavaScript 정규 표현식과 일치시키는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 20:02:02432검색

How to Match Multiline Content with JavaScript Regular Expressions?

여러 줄 일치를 위한 JavaScript 정규식 경계 극복

JavaScript 정규식으로 작업할 때 여러 범위에 걸쳐 있는 콘텐츠를 일치시키는 방법을 이해하는 것이 중요합니다. 윤곽. 내부에 줄바꿈이 포함된 PRE 블록을 추출하려고 시도하는 다음 코드 조각을 고려해 보세요.

<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // null</code>

예상되는 결과는 전체 PRE 블록을 캡처하는 것이지만 결과는 null 경고입니다. 이를 바로잡기 위해 우리는 여러 줄 일치의 복잡한 부분을 탐구합니다.

'.|[rn]' Gambit

초기 접근 방식에는 . 임의의 문자 또는 줄 바꿈과 일치하는 표현식이 포함된 와일드카드 문자: (.|[rn]). 그러나 이는 효과가 없음이 입증되었습니다.

The Revelation: [sS]

성공의 열쇠는 . 대신 [sS]를 사용하는 데 있습니다. 여러 줄 일치를 위해. 이 문자 클래스는 공백 문자와 공백이 아닌 문자를 모두 포함하여 문제를 효과적으로 해결합니다.

<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // <pre class="brush:php;toolbar:false">...<\/pre></code>

탐욕의 미묘함: '?' vs. ''

또 다른 고려 사항은 사용되는 수량사와 관련됩니다. 는 당연한 선택처럼 보일 수도 있지만 불필요한 욕심을 불러일으킵니다. '?' 또는 ' ?' 일치 항목이 가능한 가장 긴 항목 대신 첫 번째 항목을 찾도록 보장합니다.

[^]에 대한 참고

[^]는 여러 줄의 점으로도 사용할 수 있습니다. , 다른 게시물의 댓글에 따라 더 이상 사용되지 않습니다. 그러므로 [sS]를 고수하는 것이 좋습니다.

위 내용은 여러 줄의 콘텐츠를 JavaScript 정규 표현식과 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.