정규 표현식을 사용하여 앵커 링크의 href 속성 값 추출
HTML 앵커 링크에서 href 속성 값을 추출하려면 사용자 정의 정규식을 사용할 수 있습니다. 귀하의 특정 요구 사항에 대한 포괄적인 답변은 다음과 같습니다.
제공하신 정규식 패턴 "@(<a.>?>.?)"는 앵커 링크를 식별하지만 href 값을 캡처하지 않습니다. 이를 달성하려면 보다 구체적인 패턴이 필요합니다.
<code><a\s+(?:[^>]*?\s+)?href=(["'])(.*?)</code>
이 모드는 다음과 같이 분류됩니다.
<a
은 시작 앵커 태그와 일치합니다. s (?:[^>]*?s )?
은 앵커 태그 내의 모든 공백 및 선택적 속성(비캡처 그룹)과 일치합니다. href=
은 href 속성과 일치합니다. (["'])(.*?)1
은 큰따옴표나 작은따옴표 사이에 있는 href 값을 캡처합니다(캡처 그룹). 유효한 URL 필터링
잘못된 URL("?" 또는 "=" 문자가 모두 포함되지 않은 URL)을 필터링하려면 다음 정규식을 사용할 수 있습니다.
<code>page\.php\?id\=.*</code>
이 패턴은 지정한 기준과 일치하는 문자열과 일치합니다.
연결된 목록에서 href 값 추출
더 이상 앵커 태그를 구문 분석할 필요가 없으며 이제 "href="abcdef"" 형식의 링크 목록이 있다고 말씀하셨습니다. 이 목록에서 href 값을 추출하려면 다음을 사용할 수 있습니다.
<code>"href=(['"])(.*?)</code>
이 모드는 큰따옴표나 작은따옴표로 묶인 경우에도 href 값을 캡처합니다.
JavaScript 코드 조각
JavaScript에서 이러한 정규식 패턴을 사용하는 방법을 보여주기 위한 코드 조각은 다음과 같습니다.
<code class="language-javascript">const pattern = /<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)/; const linkText = '<a href="www.example.com/page.php?id=xxxx&name=yyyy"></a>'; const match = pattern.exec(linkText); if (match) { console.log(match[2]); // 输出:www.example.com/page.php?id=xxxx&name=yyyy }</code>
위 내용은 정규식을 사용하여 앵커 링크에서 href 속성 값을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!