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

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

Susan Sarandon
Susan Sarandon원래의
2024-10-24 08:20:30387검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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