为什么Regex无法正常工作?

时间:2017-04-19 16:03:03

标签: php regex

我有简单的PHP正则表达式来提取<body></body>

中的所有内容

正则表达式

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

这是文字

<!doctype html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <link href="http://localhost//themes/default/../dashboard/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

    <link rel="stylesheet" type="text/css" href="http://localhost//assets/cache/default_product_groups_product_groups_mod.css" media="screen" />
    <link rel="shortcut icon" href="http://localhost//favicon.ico">
</head>

<body>
    <p dir='rtl'>
     <a target='_blank' href='https://zuz.mx/2e5y'>לרכישה מכאן במחיר 37.01$</a>
    </p>

    <input id="base_url_special" type="hidden" name="base_url_special" value="http://localhost//"/>

</body>
<script src="http://localhost//themes/default/js/jquery.min.js" type="text/javascript"></script>

<script src="http://localhost//assets/cache/default_fetchPG_product_groups_mod.js?_dt=1492617362" type="text/javascript"></script>
<script src="http://localhost//themes/default/../dashboard/js/bootstrap.min.js" type="text/javascript"></script>

</body>
</html>

这是实例https://regex101.com/r/joLaTm/1

2 个答案:

答案 0 :(得分:4)

您必须设置单行选项,以使.与新行匹配(请参阅测试的fork)。或者使用[\S\s]*

答案 1 :(得分:3)

查看实际示例的解释部分。

  

.*匹配任何字符(行终止符除外)

s标记添加到正则表达式中。 https://regex101.com/r/joLaTm/3