正则表达式删除PHP标签时删除html标签,然后删除空行

时间:2011-12-21 16:01:19

标签: regex newline

我正在尝试编写一个Regexp,我可以用它将格式良好的HTML / php页面转换为纯文本/ php副本。我写了正则表达式以匹配HTML标签,同时离开php:

<\w*[\s=\w-\d'"/!]*>

我用空字符串替换任何匹配项。我遇到的问题是

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

变成7个空白行。有没有一种很好的方法来替换这些字符串中的换行符而不替换整个文档中的所有换行符?

2 个答案:

答案 0 :(得分:0)

好的,我想我已经知道了。诀窍是在html标签之前删除任何换行符/空白字符。这是工作副本:

[\r\n\s]*?<\w*[\s=\w-\d'"/!]*>

答案 1 :(得分:-1)

我不知道这个正则表达式是如何防止失败的,但在我的测试用例中它运行良好。

(?<=\w)<[^?]\w*[^>]*>| *<[^?]\w*[^>]*>\s*替换为nil string。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

=&GT; ""

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>hello</title>
    <title>hello</title>
</head>
<body>

=&GT;

hello
hello