-1

我在做什么是一个非常愚蠢的错误,实际上在我的 html 中,我有很多

<li class="MsoNormal" style="margin:0in 0in 0pt">
            <span style="font-family:'Calibri','sans-serif';font-size:11pt">May be required to work extra hours at month end to meet monthly deadlines. .</span>
 </li>

我想用 LI, span 替换这些所有标签 - 所以输出将是

“- 可能需要在月底加班,以满足每月的最后期限。.”

我正在使用此代码

$a = preg_replace('/(<li[^>]*><span[^>]*>)(.*?)(<\/span><\/li>)/imsU',"-$2",$a);

但它不起作用。请建议。

提前致谢

4

2 回答 2

1

你试过了strip_tags()吗?我认为这是一种简单的方法来做你想做的事......

于 2012-07-20T12:39:48.967 回答
0

您的正则表达式中不存在换行符。尤其是标签之间。正确的正则表达式是:

$a = preg_replace('/(<li[^>]*>(?:[\s]*)<span[^>]*>)(.*?)(<\/span>(?:[\s]*)<\/li>)/imsU', "-$2", $a);

?:是在这里留下第二场比赛仍然是第二。(这称为非捕获分组)

于 2012-07-20T12:21:06.270 回答