【问题标题】:Regular expression to fetch in multiple lines在多行中获取的正则表达式
【发布时间】:2016-03-14 13:33:29
【问题描述】:

提前谢谢,我有这个问题,我的正则表达式是这样的:

    <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>

【问题讨论】:

  • 你需要使用多行正则表达式

标签: javascript php regex


【解决方案1】:

试试这个

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

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

【讨论】:

    【解决方案2】:

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

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

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

    希望有帮助!

    【讨论】:

      【解决方案3】:
      /<title>(.|\r|\n)*?<\/title>/g
      

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

      【讨论】:

        【解决方案4】:

        你可以用这个正则表达式在 PHP 中这样做:

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

        Javascript:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          • 1970-01-01
          • 2013-06-12
          • 2021-12-17
          • 1970-01-01
          • 2012-11-17
          相关资源
          最近更新 更多