简体   繁体   中英

Using preg_replace

How would I replace all span tags (and whatevers inside them) that have the class pagenum pncolor with an empty line. str_replace wouldn't work because the name is different for all of them, so I assume I'd use preg_replace, but I'm sure how that works.

<span class='pagenum pncolor'><a id='page_001' name='page_001'></a>001</span>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_130' name='page_130'></a>130</span>
<p>Some text</p>
<p>Some text</p>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_120' name='page_120'></a>120</span>
<p>Some text</p>

<span class='pagenum pncolor'><a id='page_100' name='page_100'></a>100</span>
<p>Some text</p>

使用此正则表达式: #<span class='pagenum pncolor'>.*?</span>#si

I'm going to mention the obligatory: You can't parse [X]HTML with regex. Because HTML can't be parsed by regex. Regex is not a tool that can be used to correctly parse HTML.

However, I'm guilty of using regexes in situations like this also... And if I were to do so, I'd use @andreas's answer.

assuming that $text = {THE_HTML_STRING_YOU_POSTED_IN_YOUR_QUESTION};

you can try:

preg_replace("/<span class='pagenum pncolor'>(.*)<\/span>/",'',$text);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM