【发布时间】:2015-12-25 09:21:54
【问题描述】:
Sentences = 可能包含任何内容(包括 html 标签)的行。我有很多这样的句子。这些句子在我不想删除 所有标签 的 huge 文本中(我希望所有其他行保持不变):
<h2 id="aa"><a href="/bb/cc/dd">sentence</a></h2>
<h2 id="xx"><a href="/yy/tt">Another sentence</a></h2>
有时只有:
<h2 id="aa">A sentence without a link</h2>
我觉得奇怪的第一件事是:我正在尝试搜索任何角色并填充一个组。我已经尝试了所有这些解决方案:
-
\(.\)\+-> 选择整行 -
\([.]\)\+-> 仅选择“.”字符 -
\([\.]\)\+-> 仅选择“.”字符 -
\([\.]\)\+-> 仍然只选择“.”字符(什么?)
从文档中,如果我想选择一组任何字符并填写一个寄存器,我想我可以使用该表达式,但它不起作用:\([\.]\+\)。唯一有效的“关闭”表达式是\(.\)\+,但如果我尝试输出寄存器,它只会填充 最后一个匹配的字符。
所以从上面的这个问题开始,我不能做我想要的,即通过这个输出转换上面的所有句子:
---sentence
---Another sentence
---A sentence without a link
我试过:%s/^<h2 id=\(\[.\]\+\)<a\([.]\)\+>\(.\)\+<\/a><\/h2>$/--->\3/之类的东西,但它不能正常工作,并且没有包含没有<a />标签的句子
你会怎么做?
【问题讨论】:
-
我再次阅读了您的编辑,我可以假设您只需要删除 html 标签并包含
标签吗? -
@Olivier Pons,我真的不明白为什么我的正则表达式不适合您的问题。你能定义一个输入和输出集吗?例如:“对于输入 x y z,我希望正则表达式给出输出 a b c”
-
@Olivier Pons,请看一下我的正则表达式问题:stackoverflow.com/questions/33181434/…,以获得正确的输入和输出集。
-
%s/<h[^>]*>\(<[^>]*>\)*\([^<]*\).*/--- \2/g这有帮助吗?