1 html php regex html-manipulation
这是我需要做的:
我需要匹配以下标记:
<SPAN style="TEXT-DECORATION: underline">text sample</SPAN>
Run Code Online (Sandbox Code Playgroud)
我需要用符合html3标签替换span,但保留文本.更换后,最终标签应如下所示:
<u>text sample</u>
Run Code Online (Sandbox Code Playgroud)
我对正则表达式不太满意,似乎无法得出答案.
先感谢您.
正则表达式不是为标记操作而设计的.
如果你有任何形式的嵌套,它会变得混乱.
但是,考虑到提供的非常简单的示例,您可以这样做:
$MyString = preg_replace
( '/(?si)<SPAN\s+style\s*=\s*"TEXT-DECORATION:\s*underline;?"\s*>(.*?)<\/SPAN>/'
, '<u>$1</u>'
, $MyString
);
Run Code Online (Sandbox Code Playgroud)
但是这在很多方面存在缺陷,而且使用专为操作标签而设计的工具要好得多.
看看DOMDocument-> loadHTML()和相关函数.
不要将常规表达式用于PARSE HTML
不要使用正则表达式来解析HTML
你需要更多澄清吗?
使用DomDocument :: LoadFromHTML;)