>

file_get_contents() 와 함께 일하고 있습니다  그리고 다음과 같은 구조의 html 문자열이 나타납니다 :

$html = "
<select>
   <option>I need this part 1/ I don't need this 1 </option>
   <option>I need this part 2/ I don't need this 2 </option>
   <option>I need this part 3/ I don't need this 3 </option>
   ...
   <option>I need this part 50/ I don't need this 50 </option>
</select>";

모든 / I don't need this [n] 를 제거하고 싶습니다 .

어떻게해야할까요?

  • 답변 # 1

    코드 : (데모)

    $html = "
    <select>
       <option>I need this part 1/ I don't need this 1 </option>
       <option>I need this part 2/ I don't need this 2 </option>
       <option>I need this part 3/ I don't need this 3 </option>
       ...
       <option>I need this part 50/ I don't need this 50 </option>
    </select>";
    echo $html=preg_replace('~/.*<~','<',$html);
    
    

    ~ 사용  정규식 내에서 슬래시를 피할 필요가 없도록 패턴 구분 기호로 사용하십시오.

    와이즈 비즈  할 수있다욕심이 있어야한다  패턴의 끝에 플래그) 및 원하지 않는 하위 문자열에 . 가 포함 된 경우  이렇게하면 HTML 텍스트가 엉망이되는 것을 방지 할 수 있습니다.

    패턴을 느리게하고 교체 문자열에 캡처 참조를 사용하지 않기 때문에 캡처 그룹을 사용하지 마십시오.

    출력 :

    s
    
    
    <시간> 마지막으로, 원하지 않는 부분 문자열에 < 가 포함되어 있지 않은 경우 , 그러면 다음 패턴 및 대체 텍스트가 위의 방법보다 훨씬 뛰어납니다.

    패턴 : <select> <option>I need this part 1</option> <option>I need this part 2</option> <option>I need this part 3</option> ... <option>I need this part 50</option> </select> 교체 : < 정규식 데모

    ~/[^<]+</~

  • 이전 대/소문자를 구분하지 않고 ID를 3 번 ​​입력하여 간단한 C # 로그인
  • 다음 swift - macOS에 중점을 두지 않고 창을 표시하는 방법은 무엇입니까?