Regular-Expression

PHP:擷取多行子字元串

  • January 19, 2020

我有一個長的多行字元串(它在一個我可以載入到字元串中的文件中),讓我們以此為例:

<response status="success" code="19">
 <result total-count="1" count="1">
   <deviceconfig>
     <system>
       <type>
         <static/>
       </type>
     </system>
     <setting>
   </deviceconfig>
 </result>
</response>
<response status="success" code="19">
 <result total-count="1" count="1">
   <network>
     <interface>
       <ethernet/>
     </interface>
     <profiles>
       <monitor-profile>
         <entry name="default">
           <interval>3</interval>
           <action>wait-recover</action>
         </entry>
       </monitor-profile>
     </profiles>
   </network>
 </result>
</response>

我需要提取它的系統子集並將其放在一個字元串中,其中包含從上面的範例中獲取的以下內容:

     <system>
       <type>
         <static/>
       </type>
     </system>

在我的案例中,原始樣本要大得多,系統內的文本也要大一些

好的,我找到了解決方案:

preg_match_all('/(<system>.*<\/system>)/ms', file_get_contents('./myinputfile'), $xmlinit);
$output=$xmlinit[0][0]
file_put_contents('./myoutputfile', $output );

歡迎提出改進建議!

引用自:https://unix.stackexchange.com/questions/562851