我在var中有这个代码.
<html>
<head>
.
.
anything
.
.
</head>
<body anything="">
content
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
要么
<html>
<head>
.
.
anything
.
.
</head>
<body>
content
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
结果应该是
content
Run Code Online (Sandbox Code Playgroud) 好吧,我们都知道尝试使用Regex解析HTML 会带来Cthulhu的愤怒.很好.对于你为什么不应该这样做,有一些很好的回应.我接受这些,并且不止一次在问题上发布这些链接.
但是让我们把这个问题放在以下范围内:除了Regex之外,我们没有解析HTML的选项.为什么?没关系. 但是,假设我们的开发者目前想要失去他们对Tony the Pony的想法,并尽可能地做出不可能的事情.如果这让你大吃一惊,那么假设这个问题是理论性的.无论什么漂浮你的船.只考虑用正则表达式解析HTML的想法,即使你不应该.
在这里,我们看到一种声称,它是不可能做到的,至少是完美的.但是@NikiC下面有一个非常明智的评论:
这个答案从错误的参数中得出了正确的结论("用正则表达式解析HTML"这是一个坏主意)("因为HTML不是常规语言").大多数人现在所说的"正则表达式"(PCRE)不仅可以解析无上下文的语法(实际上是微不足道的),而且能够解决上下文敏感的语法(参见https://stackoverflow.com/) a/7434814/1222420)
事实是,即使相当冗长,你也可以使用现代正则表达式来做一些非常强大的事情.但是很多人认为这个问题听起来像是停机问题:你可以尝试,但总会有另一种情况,你的解决方案会破坏.
所以这就是问题,而且它有点像两个部分.
我需要忽略>我的正则表达式.
我的正则表达式:
/(>(.+)(?=<\/a>))/igm
Run Code Online (Sandbox Code Playgroud)
匹配以下内容:

我如何告诉它>在开始时忽略它?
这是regexr.com上的正则表达式.
我有html代码的字符串.
<h2 class="some-class">
<a href="#link" class="link" id="first-link"
<span class="bold">link</span>
</a>
NEED TO GET THIS
</h2>
Run Code Online (Sandbox Code Playgroud)
我只需要获得h2的文本内容.我创建这个正则表达式:
(?<=>)(.*)(?=<\/h2>)
Run Code Online (Sandbox Code Playgroud)
但是如果h2没有内部标签,它会很有用.否则我得到这个:
<a href="#link" class="link" id="first-link"
<span class="bold">link</span>
</a>
NEED TO GET THIS
Run Code Online (Sandbox Code Playgroud) 如何删除<script>和</script>使用python 之间的文本?
只是想知道是否有人可以通过以下方式进一步帮助我.我想解析这个网站上的URL:http://www.directorycritic.com/free-directory-list.html?pg = 1&sort = pr
我有以下代码:
<?PHP
$url = "http://www.directorycritic.com/free-directory-list.html?pg=1&sort=pr";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches)) {
// $matches[2] = array of link addresses
// $matches[3] = array of link text - including HTML code
}
?>
Run Code Online (Sandbox Code Playgroud)
目前没有做什么,我需要做的是废弃所有16页的表中的所有URL,并且非常感谢一些帮助,如何修改上述内容并将URL输出到文本文件中.
我是R的新手.我想编写一份100万字的报纸文章.所以我想写一个网络刮刀从例如监护人的网站上检索报纸上的文章:http://www.guardian.co.uk/politics/2011/oct/31/nick-clegg-investment-new-jobs.
刮刀用于从一页开始,检索文章的正文,删除所有标签并将其保存到文本文件中.然后它应该通过本页面上的链接转到下一篇文章,获取文章等,直到该文件包含大约100万字.
不幸的是,我的刮刀并没有走得太远.
我使用readLines()来访问网站的源代码,现在想要获取代码中的相关行.
Guardian中的相关部分使用此ID来标记文章的正文:
<div id="article-body-blocks">
<p>
<a href="http://www.guardian.co.uk/politics/boris"
title="More from guardian.co.uk on Boris Johnson">Boris Johnson</a>,
the...a different approach."
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试使用grep和lookbehind的各种表达式来掌握这一部分 - 尝试获取此ID后面的行 - 但我认为它不适用于多行.至少我不能让它发挥作用.
有人可以帮忙吗?如果有人可以提供一些我可以继续工作的代码,那将是很棒的!
谢谢.
我想获取存储在标签中的数字,例如
var x="<a>1234</a>";使用 JavaScript。如何解析此标签以提取数字?
我编写了一个脚本来抓取HTML文件中的不同字段,并使用结果填充变量.我正在使用正则表达式来抓取电子邮件.以下是一些示例代码:
$txt='<p class=FillText><a name="InternetMail_P3"></a>First.Last@company-name.com</p>'
$re='.*?'+'([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})'
if ($txt -match $re)
{
$email1=$matches[1]
write-host "$email1"
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Bad argument to operator '-match': parsing ".*?([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\
.)+[a-zA-Z]{2,7})([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})" - [x-y] range in reverse order..
At line:7 char:16
+ if ($txt -match <<<< $re)
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : BadOperatorArgument
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?此外,是否有更好的电子邮件正则表达式?
提前致谢.
html ×5
javascript ×5
regex ×5
html-parsing ×2
email ×1
parsing ×1
php ×1
powershell ×1
python ×1
qstring ×1
qt ×1
r ×1
theory ×1
web-scraping ×1