정확한 데이터 추출을 위해 정규식에서 선택적 공백을 처리하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-24 08:20:30
원래의
386명이 탐색했습니다.

How to Handle Optional Whitespace in Regular Expressions for Accurate Data Extraction?

선택적 공백 정규식: 속성 값에서 공백 무시

프로그래밍에서는 문자열에 선택적 공백이 포함된 인스턴스를 처리해야 하는 시나리오가 있습니다. . 데이터를 정확하게 추출하기 위해 정규식을 작성할 때 이는 어려울 수 있습니다.

다음 코드를 고려하세요.

# Get Image data
preg_match('#<a href=&quot;(.*?)&quot; title=&quot;(.*?)&quot;><img alt=&quot;(.*?)&quot; src=&quot;(.*?)&quot;[\s*]width=&quot;150&quot;[\s*]height=&quot;(.*?)&quot;></a>#', $data, $imagematch);
$image = $imagematch[4];
로그인 후 복사

이 코드는 HTML 마크업에서 이미지의 src 속성을 추출합니다. 그러나

<code class="html"><a href=&quot;/wiki/File:Sky1.png&quot; title=&quot;File:Sky1.png&quot;><img alt=&quot;Sky1.png&quot; src=&quot;http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png&quot;width=&quot;150&quot; height=&quot;84&quot;></a></code>
로그인 후 복사

또는

<code class="html"><a href=&quot;/wiki/File:TallGrass.gif&quot; title=&quot;File:TallGrass.gif&quot;><img alt=&quot;TallGrass.gif&quot; src=&quot;http://media-mcw.cursecdn.com/3/34/TallGrass.gif&quot; width=&quot;150&quot;height=&quot;150&quot;></a></code>
로그인 후 복사

과 같은 특정 속성 사이에 공백이 없는 경우는 처리하지 못합니다. 이 문제를 해결하려면 선택적 공백 정규식을 사용할 수 있습니다. 이를 통해 문자 사이의 공백을 무시할 수 있습니다. 방법은 다음과 같습니다.

#<a href\s?=&quot;(.*?)&quot; title\s?=&quot;(.*?)"><img alt\s?=&quot;(.*?)&quot; src\s?=&quot;(.*?)&quot;[\s*]width\s?=&quot;150&quot;[\s*]height\s?=&quot;(.*?)"></a>#
로그인 후 복사

업데이트된 정규식에서는

  • s? before = 공백이 허용되지만 선택 사항임을 의미합니다.
  • 속성 값 뒤의 s*는 속성 이름과 값 뒤에 선택적 공백을 허용합니다.

위 내용은 정확한 데이터 추출을 위해 정규식에서 선택적 공백을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!