正则表达式Python在样式标签之间删除(包括\ n \ r)

时间:2014-08-01 10:04:13

标签: python css regex

我对regexp感到困惑我得到了这个文本,需要删除标签内的样式。如果它使用这个正则表达式<style>(.*)<\/style>在这样的一行上,我就能使用它,非常简单:

<style>@page { size: 8.5in 11in; margin-right: 1in; margin-top: 0.5in; margin-bottom: 0.5in }</style>

但是我坚持使用\r\n,我无法为此文本打败。

<style>
    @page { size: 8.5in 11in; margin-right: 1in; margin-top: 0.5in; margin-bottom: 0.5in }
    p { margin-bottom: 0.17in; direction: ltr; color: #000000; widows: 2; orphans: 2 }
    p.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: en-US; font-style: italic; font-weight: bold }
    p.cjk { font-family: "Times New Roman", serif; font-size: 12pt; font-style: italic; font-weight: bold }
    p.ctl { font-family: "Times New Roman", serif; font-size: 10pt; so-language: ar-SA }
    h3 { margin-top: 0in; margin-bottom: 0.17in; direction: ltr; color: #000000; text-align: justify; widows: 2; orphans: 2; page-break-after: auto }
    h3.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: en-US; font-weight: normal }
    h3.cjk { font-family: "Times New Roman", serif; font-size: 12pt; font-weight: normal }
    h3.ctl { font-family: "Times New Roman", serif; font-size: 10pt; so-language: ar-SA; font-weight: normal }
    a:link { color: #0000ff }
    a:visited { color: #800080 }
    a.western:visited { so-language: en-US }
    a.cjk:visited { so-language: zh-CN }
    a.ctl:visited { so-language: hi-IN }
    a.sdfootnotesym-western { font-size: 8pt }
    a.sdfootnotesym-cjk { font-size: 8pt }
</style>

3 个答案:

答案 0 :(得分:2)

使用s修饰符。

  

(?s)为“单行模式”使点匹配所有字符,   包括换行符。 Ruby或JavaScript不支持。在Tcl,   (?s)也使得插入符号和美元符合在开头和结尾处   只有字符串。

或使用:

<style>([\s\S]*)<\/style>

答案 1 :(得分:0)

只需使用(?s) DOTALL )修饰符制作点以匹配换行符,

(?s)<style>(.*?)<\/style>

DEMO

答案 2 :(得分:0)

使用此正则表达式,&#39;。&#39;不包括\ n

<style>((?:.|\n)*)<\/style>