0

如何将“.nmv-fas”的所有实例更改为“title”标签之间的任何内容?这可以用python还是有更好的方法?

基本上改变:

<html>
<head>
<title>.rtpv05-tl</title>
</head>
<a href="http://www.youversion.com/bible/gen.1.nmv-fas">http://www.youversion.com/bible/gen.1.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.2.nmv-fas">http://www.youversion.com/bible/gen.2.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.3.nmv-fas">http://www.youversion.com/bible/gen.3.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.4.nmv-fas">http://www.youversion.com/bible/gen.4.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.5.nmv-fas">http://www.youversion.com/bible/gen.5.nmv-fas</a>

对此

<html>
<head>
<title>.rtpv05-tl</title>
</head>
<a href="http://www.youversion.com/bible/gen.1.rtpv05-tl">http://www.youversion.com/bible/gen.1.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.2.rtpv05-tl">http://www.youversion.com/bible/gen.2.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.3.rtpv05-tl">http://www.youversion.com/bible/gen.3.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.4.rtpv05-tl">http://www.youversion.com/bible/gen.4.rtpv05-tl</a>
<a href="http://www.youversion.com/bible/gen.5.rtpv05-tl">http://www.youversion.com/bible/gen.5.rtpv05-tl</a>
4

2 回答 2

1
awk -v text='.nmv-fas' '
    /<title>/ {title=$0; gsub(/<\/?title>/, "", title); replace=1}
    replace {gsub(text, title)}
    {print}
' file > file.tmp && mv file.tmp file

awk 没有像 sed 那样的“就地”选项-i

当然,这取决于标题文本与<title>标签在同一行。为了安全起见,您应该使用 HTML 解析器来解析 HTML。

于 2012-05-10T18:53:32.463 回答
0

您可以使用正则表达式将标题作为字符串拉出。假设您的 html 在一些字符串中:

import re
match = re.compile(r"<title>(.+)</title>",re.I|re.DOTALL)
title = match.group(1)

然后只需对字符串 s 进行字符串替换

s.replace(".nmv-fas",title)
于 2012-05-10T18:57:49.810 回答