여러 줄 일치를 위한 JavaScript 정규식 경계 극복
JavaScript 정규식으로 작업할 때 여러 범위에 걸쳐 있는 콘텐츠를 일치시키는 방법을 이해하는 것이 중요합니다. 윤곽. 내부에 줄바꿈이 포함된 PRE 블록을 추출하려고 시도하는 다음 코드 조각을 고려해 보세요.
<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match(/
예상되는 결과는 전체 PRE 블록을 캡처하는 것이지만 결과는 null 경고입니다. 이를 바로잡기 위해 우리는 여러 줄 일치의 복잡한 부분을 탐구합니다.
'.|[rn]' Gambit
초기 접근 방식에는 . 임의의 문자 또는 줄 바꿈과 일치하는 표현식이 포함된 와일드카드 문자: (.|[rn]). 그러나 이는 효과가 없음이 입증되었습니다.
The Revelation: [sS]
성공의 열쇠는 . 대신 [sS]를 사용하는 데 있습니다. 여러 줄 일치를 위해. 이 문자 클래스는 공백 문자와 공백이 아닌 문자를 모두 포함하여 문제를 효과적으로 해결합니다.
<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match(/
/gm); alert(arr); // <pre class="brush:php;toolbar:false">...<\/pre></code>
탐욕의 미묘함: '?' vs. ''
또 다른 고려 사항은 사용되는 수량사와 관련됩니다. 는 당연한 선택처럼 보일 수도 있지만 불필요한 욕심을 불러일으킵니다. '?' 또는 ' ?' 일치 항목이 가능한 가장 긴 항목 대신 첫 번째 항목을 찾도록 보장합니다.
[^]에 대한 참고
[^]는 여러 줄의 점으로도 사용할 수 있습니다. , 다른 게시물의 댓글에 따라 더 이상 사용되지 않습니다. 그러므로 [sS]를 고수하는 것이 좋습니다.
위 내용은 여러 줄의 콘텐츠를 JavaScript 정규 표현식과 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!