sagog 发表于 2018-12-26 09:21:49

正则表达式问题。

本帖最后由 sagog 于 2018-12-26 09:27 编辑

豬婆
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>豬婆</h2>(豬婆,猪婆)</span><BR><com>母豬。</com><br>
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>豬婆</h2>補證條目</span><br>“南邊人的俗語,叫作貪嵞買豬婆肉。”</span>
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>稅籍</h2>(稅籍,税籍)</span><BR><com>徵稅的簿冊。</com><br><span class="example">《
</>
一拍卽合
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>一拍卽合</h2><com>原指一打拍子就合於樂曲的節奏。 比喻一下子就能夠互相吻合。</com>
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>一拍卽合</h2>補證條目<br>原指一打拍子就合於樂曲的節奏。比喻一下子就能夠互
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>剝取</h2>(剝取,剥取)</span>猶榨取。</com><br><span class="example"><span
</>


从上述情况中删除其他词条的正则表达式是什么?

<h2>稅籍</h2>與<h2>剝取</h2>行

OldFarmer 发表于 2018-12-26 09:41:53

你是想保留的是<h2>标签内的内容,还是什么意思?

mtaa 发表于 2018-12-26 09:53:28

没明白正则是要删除啥。

sagog 发表于 2018-12-26 10:00:13

OldFarmer 发表于 2018-12-26 09:41
你是想保留的是标签内的内容,还是什么意思?


我想用正则表达式删除其他词条。


我想得到以下结果。

豬婆
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>豬婆</h2>(豬婆,猪婆)</span><BR><com>母豬。</com><br>
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>豬婆</h2>補證條目</span><br>“南邊人的俗語,叫作貪嵞買豬婆肉。”</span>

</>
一拍卽合
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>一拍卽合</h2><com>原指一打拍子就合於樂曲的節奏。 比喻一下子就能夠互相吻合。</com>
<link type="text/css" rel="stylesheet" href="hydcd.css"/><h2>一拍卽合</h2>補證條目<br>原指一打拍子就合於樂曲的節奏。比喻一下子就能夠互
</>

OldFarmer 发表于 2018-12-26 10:21:42

我还是没有看懂你的意思

VimVim 发表于 2018-12-26 10:41:27

本帖最后由 VimVim 于 2018-12-26 11:21 编辑

Vim的解决方案:
1、采用Vim宏命令,自动获取词头并存入寄存器a(具体请自行解决)
2、使用vim的替换命令(其中^Ra指上述寄存器a中的内容,而非普通字符),将非词头的行删除:
:s/\v(.*)(\<h2\>((?!^Ra).)+\<\/h2\>)(.*)//
3、将上述指令存入Vim宏命令,批量实施:具体案例可参考
https://www.pdawiki.com/forum/fo ... d=32243&pid=1033507

具体测试结果请查看:

在线测试正则表达式:https://c.runoob.com/front-end/854
测试用例:(.*)(\<h2\>((?!豬婆).)+\<\/h2\>)(.*)
这与上述Vim指令相比:
(1)少了Vim替换命令相关的内容,(2)“豬婆”等具体关键词,Vim会自动从上述第一步获取。






sagog 发表于 2018-12-26 10:51:54

OldFarmer 发表于 2018-12-26 10:21
我还是没有看懂你的意思



在合并过程中这是错误的,这部分发生了很多。

baodi 发表于 2018-12-26 18:29:18

查找
(<h2>(?'name1'[^<>]*)</h2>.*)\n.+?<h2>(?!\k'name1').*$
替换
\1
替换一下
我用的这个是PCRE正则表达式格式.可能和你的显示不同,自行研究修改.

思路:https://s1.ax1x.com/2018/12/26/F2kq6P.png

sagog 发表于 2018-12-27 08:46:09

baodi 发表于 2018-12-26 18:29
查找

替换


非常感谢你
页: [1]
查看完整版本: 正则表达式问题。