正则表达式以多行获取

时间:2016-03-14 13:33:30

标签: javascript php regex

先谢谢,我有这个问题,我的正则表达是:

    <title>(.*?)<\/title>

适合那些人:

    <title>Sapateira l Mais de 80 itens | Mobly</title>
    <title>Sapateiras - Móveis e Decoração ‹ Magazine Luiza</title>
    <title>Sapateira l Mais de 80 itens | Mobly</title>

并不是为了那个:

    <title>
        Sapateiras em Promoção | Preço de Dormitórios / Quartos | CasasBahia.com.br| Dia do Consumidor 2016
    </title>

4 个答案:

答案 0 :(得分:0)

试试这个

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

\s匹配任何空格字符(空格,制表符和换行符)

答案 1 :(得分:0)

您希望在正则表达式中包含换行符。像这样的东西会起作用:

<title>\n*(.*?)\n*\s*<\/title>

正则表达式示例: https://regex101.com/r/kR2xM7/1

希望有所帮助!

答案 2 :(得分:0)

/<title>(.|\r|\n)*?<\/title>/g

https://regex101.com/r/wN8dS7/1

答案 3 :(得分:0)

您可以使用此正则表达式在PHP中执行此操作:

preg_match('%<title>[\s\S]+?</title>%im', $subject, $regs)
  

使用Javascript:

var myregexp = /<title>[\s\S]+?<\/title>/im;
var match = myregexp.exec(subject);