3

这个正则表达式排除标题标签内容有什么问题?

$plaintext = preg_match('#<title>(.*?)</title>#', $html);

$html 具有整个页面的 html 代码。

4

3 回答 3

5

听起来你从来没有得到有效的答案。让我们删除标题标签。

搜索:(?s)<title>.*?</title>

代替:""

代码:

$regex = "~(?s)<title>.*?</title>~";
$ replaced = preg_replace($regex,"",$pagecontent);

解释正则表达式

(?s)                     # set flags for this block (with . matching
                         # \n) (case-sensitive) (with ^ and $
                         # matching normally) (matching whitespace
                         # and # normally)
<title>                  # '<title>'
.*?                      # any character (0 or more times (matching
                         # the least amount possible))
</title>                 # '</title>'
于 2014-06-03T01:40:16.380 回答
0

我想它应该是这样的......这只会给你介于两者之间的内容

preg_match('(?<=<title>).*(?=<\/title>)', $html);

http://www.phpliveregex.com/p/1SJ

http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

于 2013-11-06T17:28:13.800 回答
0

这将获得两个标签之间的所有内容

preg_match('<title>.+', $html);
于 2013-11-06T17:32:29.227 回答