使用UltraEdit的正则表达式删除含某个关键字的多行?

批处理后生成的文档,是上千“组”信息(一组18行),有一行(不是第一行)包含其部门属性,现有项操作需要剔除某一部门的所有信息,想用UltraEdit的正则表达式删除,也就... 批处理后生成的文档, 是上千“组”信息(一组18行),有一行(不是第一行)包含其部门属性,现有项操作需要剔除某一部门的所有信息,想用UltraEdit的正则表达式删除,也就是说,发现该部门名称,就这18行都删了,如何处理……?
就这样说吧,
打比方第一行是姓名,第二行是性别,第三行是部门……第18行是备注
一个文件里有上千个这样的18行
现在就是只要这个部门A的,这18行就都删了
求方法……
谢谢~~~
展开
 我来答
归萱pN
2012-04-23 · TA获得超过990个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1484万
展开全部
用vba给你写,就是excel的宏,你吧文件格式写清楚,或者给我发个具有代表性的文件,几分钟就给你搞定。
pt98@sina.com
'---------------
'vba
'假设部门代码在第三行,而且每个部门占用18行
Sub test()
Dim s As String, i As Long, n As Long, arr
Open "c:\abc.txt" For Input As #1
arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbNewLine)
Close #1
s = InputBox("输入一个要删除的部门名称:", , "sss")
For i = 0 To UBound(arr)
If InStr(arr(i), s) > 0 Then Exit For
Next
If i < UBound(arr) + 1 Then
n = i
Open "c:\outputfile.txt" For Output As #1
For i = 0 To UBound(arr)
If i <= n - 2 Or i >= n + 17 Then
Print #1, arr(i)
End If
Next
Close #1
End If
End Sub
’---------------------------------------
‘已修改成第二行,原来按第三行处理的,试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
惊雨cnw168
2012-04-24 · TA获得超过184个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:304万
展开全部
你说的不详细,组和组之间用什么分割?既然你举了例子了,那就按你的例子说吧,应该这样写:姓名[\W\w]*?部门某某某[\W\w]*?备注.+\n 用这个替换就行了。不过ULTRA对中文支持不好,先转成UTF-8在替换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
度老虎
2012-04-22 · TA获得超过1546个赞
知道大有可为答主
回答量:1661
采纳率:100%
帮助的人:2312万
展开全部
都在一个文本文件里吗?
1-18行、19-36行、37-54行..... 这样分组吗?
第三行是部门名称?
更多追问追答
追问
在一个文本文件里吗?
2-19行、20-37行、38-55行..... 这样分组
第2行很长,包含部门名称
追答
部门名称在每个组里第一行?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式