我想在样式标记之间获取所有字符。 这是我的正则表达式
'#<style>(.*?)</style>'
正确生成结果 但它不适用于多行
正确地为此工作:
<style>body { height: '100%'; }</style>
这不起作用
<style>
body {
height: '100%';
}
</style>
我知道/ s或[/ s / S]或s会起作用,但我不知道它们会如何工作
此致
答案 0 :(得分:1)
你可以使用模式修饰符在多线上与PCRE正则表达式匹配:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
m
是多线修改器。 s
是允许点匹配新行的修饰符。那么像这样的模式怎么样:
'#<style>(.*?)</style>#ms'
我认为您也可以对i
修饰符感兴趣,因为代码可以是<style>
或<STYLE>
或其他风格<StYlE>
,它们都是有效的。
答案 1 :(得分:0)
答案 2 :(得分:0)
“”。匹配除\ n之外的任何单个字符,因此'<style>(.*?)</style>'
在多行情况下不起作用。而[\ s \ S] *将匹配任何字符,包括\ n。