그래서PHP preg_replace가 여러 공백과 일치하지 않습니다.
기존 HTML이 있습니다. 정규식을 사용하여 크래프트를 제거하려고합니다.
<div class="al-list-head"><span>Another List</span></p>
<h3>Destinations</h3>
</div>
같은 것이 HTML의 또 다른 변종
<div class="al-list-head">
<p><span>Another List</span></p>
<h3>Lounge</h3>
</div>
수 (CMS는 때로는 중복 <p>
년대에 추가).
내 정규 표현식은 대부분 (두 번째 샘플) 작동하지만 첫 번째는 작동하지 않습니다. 나는 많은 문자 클래스를 시도했지만 첫 번째 샘플에서 마지막 </h3>
과 마지막 </div>
사이의 갭을 일치시키는 것처럼 보이지 않습니다.
내 정규식은 ...
$html = preg_replace('/<div class=\"al-list-head\">[\s](<p>?)(<span>Another\ List<\/span>)(<\/p>?)[\s]<h3>([^<\/>]*)<\/h3>[\s]<\/div>/is', '<h3 class="al-head">$4</h3>', $html);
은 <\h3>
후 나는 [\s]
, ([\s]?)
, ([\s\b\n\r]*)
과 행운 심지어 (.*)
을 시도했습니다.
모든 포인터?
나는 이것을 사용하여 반복하고 테스트하기 때문에 handy little tool이 유용하다는 것을 알기를 바랍니다.
추가보십시오 'm' 수식어 넣기 : 당신의 정규식은'/ is'로 끝나고'/ ism'을 시도해보십시오. – ljacqu
@dangvy 예상되는 결과는 무엇입니까? –
명령이 작동합니다. http://regex101.com/r/wN4wB7/2 –