掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2856|回复: 10

[求助] 删除任意冗余数据的方法?已知字符范围

[复制链接]

该用户从未签到

发表于 2014-9-11 08:37:58 | 显示全部楼层 |阅读模式
本帖最后由 wubis 于 2014-9-11 09:18 编辑
, e" b3 U* @4 B2 K$ V+ v5 G+ I* Q0 T/ Y* S: i  B4 S4 H& k
问一下:" T9 h! U; c' p* X
4 @" b: y5 g# e
比如有一万个网页连接,分别是<br><div><a href="http://x.cn/z____.html">____</a></div></p>,下划线里面是26个字母和数字的任意组合,我是个完美主义的。如果想删除这些内容,有什么办法呢?  B' x8 \4 L3 ]/ t# T
以前用正则表达式(npp的),我丢失过数据,比如
6 e, T# a9 u6 L( s' U<div>vanl</div>saa<div>bsdb</div>
* S6 Y1 r9 \. s" J4 f% ?选择\<div\>.*\</div\>替换成空,有时候它会把上述全部删除,在同一行也是如此。# c# Y; e' o# u
6 A5 p& R( G* j3 V9 ?
对于那一万个连接,我是先注释掉,:<br><div><a href="http://x.cn/z 替换成 <!--" a2 i) O# ~7 k
.html"> 替换成 --><!--
# g! r+ @) [  Z! y% n注:这个中继连接个人认为是绝杀
8 m# Y* N3 Y3 I</a></div></p> 替换成  --> , k! |) u) j4 c; N
并假设这三组标签全部只在网页连接用过,先抽样检查' S( B9 I1 g( c' S1 T+ x! [
然后把<!--?  替换成<!--
6 }6 e- m2 b4 f7 F; o3 j; ]: f?代指26字母和数字,这样一般2小时就可以把任意组合搞定,最后把<!---->替换成空就可以了1 g6 ^$ W. h! Q0 t: v
3 L/ q5 ^" w! \' X
具体替换操作
  X5 h$ ?7 x) c/ j* b1.为加快类似aaabbb的替换,把<!--a替换成<!--时重复替换,这样子变相加快速度

本帖被以下淘专辑推荐:

该用户从未签到

 楼主| 发表于 2014-9-11 08:55:34 | 显示全部楼层
本帖最后由 wubis 于 2014-9-11 09:57 编辑
" K; W; z3 k6 u$ E, w) |: w6 |9 Y% |) e7 x, n# h
补充
2 B9 ^' Y! r- ~4 k: ~4 e% D1.很多大都会用css调成display:none,这一点挺好。我有点性能癖,觉得如果css里面一大串,会不会拖慢渲染速度- z& Q6 f+ V2 p. B
2.把mdx转出纯txt做全文搜索的,或者用mdict全文搜索的,会不会搜出被隐藏的内容# D" v$ B' @, F) m' M$ t' H, H
3.getdict能够不导出display:none的文本吗,如果这样,那就大大增强使用性了。如果有,麻烦yhssdl有空时研究以下,谢谢了。$ `- M2 ]5 g+ ~) Y1 J& y- U
4.以上3点未经考察,能力不够,手头又没有用css的mdx

该用户从未签到

发表于 2014-9-11 08:55:45 | 显示全部楼层
# C) }1 j" H+ e+ s4 |" [8 Q9 j- B

; a8 d9 v1 K  V* w自己写正则比较头疼。$ @3 Z7 M8 T  ]2 _
, K5 x' K' v2 j- i! H
可以用TextForever ( http://www.comicer.com/stronghorse/software/#TextForever ), 这个“文本提取”功能好用,我一直用这个来处理下载下来的N个网页文件(当然,事实上,可以在下载的时候顺便就处理了,不过为了防止误处理,我一般是把网页所有代码都给下了)。可删除“起始点和结束点之间的内容”,注意设置好起始点和终止点(以及其他设置),以免误删。
9 A0 |5 Z, ?/ z' d9 i0 G. S
! W5 i. v) g0 R0 E* P; X6 D
3 }+ ]' a4 H% K5 F2 a1 O% _
也可以试试Search and Replace (http://www.funduc.com/search_replace.htm )7 `+ P- ~4 {. C

. x% K. P2 r1 S5 `' X0 G

该用户从未签到

发表于 2014-9-11 09:21:32 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 09:26 编辑 : E9 S; v$ P6 V9 x8 c

; h- k- m$ O1 F嗯O大的那工具老好用了~5 b/ t; m8 b1 b
# m* P& ]$ ?- X: G+ l% _1 s
另外* `9 |0 e. E# Z% [% t) o# z
<br>保留么,<br>是行首么8 ]5 P& W3 _- F( r: o
如果不保留<br>,<br>是行首,试试
  1. ^<br><div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码

* D3 H/ s. h6 s  s" `* A: X保留<br>,试试
  1. <div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码
% u+ ~5 c4 x  Q/ W# z+ }

9 k1 c' X0 @/ G: O- c这个正则,在emeditor、akelpad、evereidt、UE(perl模式)里面应该管用,剩下不知
7 g* M+ o- g, Z5 n- \3 i6 _
: |$ k1 t) |: B, X" x再,您这还有半边<p>去哪儿了 - -!
% c9 _' x1 B* x$ q- {

该用户从未签到

 楼主| 发表于 2014-9-11 09:26:05 | 显示全部楼层
嗯,不过textforever能保证删的都是同一行,或者是同一个<div></div>里面的吗,不知道原理,因为真的被npp那次越过一个或多个</div>损坏数据吓坏了,而且这是个黑洞,你检查不出来。我之所以想出一个字符一个个删,就是怕它吃掉一些被</div>___________</div>夹住的数据

点评

试试就知道了。具体问题具体分析。  发表于 2014-9-11 09:35

该用户从未签到

 楼主| 发表于 2014-9-11 09:43:03 | 显示全部楼层
本帖最后由 wubis 于 2014-9-11 09:45 编辑 1 O0 ^/ `5 V% [! y% q4 b, @% a

! S1 E$ n" d- P5 ^谢谢itracy
# x" v' W1 S3 D' W* ?# ^8 o不过,还有更狠的,比如. F: h, x0 n% \7 p% @9 v8 }0 U% C: j
superman+ P* g* E2 R3 M# B
<b>superman</b> <u>noun</u> /我是一大串音标/ <br>超人/超级人/超级牛人: ?% F! y; A. d# A- o0 z
</>' D$ W; P" J+ v9 P# {2 S' n
怎样把音标删除,难道把所有带/的标签都先变成没有/吗5 A" h* K- S* ~$ j) \" k
纯属炒作,如有雷同,那是你问题$ _# p6 o5 T5 }. E3 F

- t2 `& X1 u+ |; D3 m正则表达式有区分中文/英文,或者东亚文字、英文,或者英文/非英文吗

该用户从未签到

发表于 2014-9-11 10:11:55 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 10:13 编辑
- P" C- L* R1 }& T$ B7 n$ Y
! `3 _/ F2 R: V# w/ o% E  `8 |音标如果都是那个格式,而且其它地方没有类似格式的文字,( n7 K, e+ [; s5 T% t* ]% I" w' G
可以试试
  1. /([^<>/]*?)/
复制代码
! a5 P$ o% M1 g$ y! l1 U2 d/ n* m6 I
2 n! ?0 m: E: j5 I* j: X* n
英文就用两种\w或者[a-zA-Z],/ E8 Y% K, A7 x( w; G  ?, p
比如纯英文的部分(\w+)或者([a-zA-Z]+)# [9 y* _2 Q) M9 Y, d

3 W3 K5 n% h  Z$ r中文就有些麻烦了,据说是每个字符都有Unicode范围的,您可以去百度一下5 W2 I# [5 E, u2 k* X
可问题是不一样的文本编辑器支持的不太一样,我自己试过的话,([一-龥]+)一般都管用
& t3 @  D$ D# T% ?. M) L9 [: F- q不过遇到中文里面夹杂了中文标点的就得费功夫了
9 _2 T0 H. v$ J7 ]/ H- ^1 T( u3 r9 R. S3 r
everedit它可以用\c替代中文
3 b3 y7 d) T1 f% ?5 m2 w
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-9-11 10:55:28 | 显示全部楼层
    <div>vanl</div>saa<div>bsdb</div> 如果要保留saa可以使用正则表达式的非贪婪模式
    # G3 m2 W+ I' N( O1 o. ~: ?  P  N( g
    ( o1 |$ V* K' a  P把 <div>.*?</div> 替换为空

    该用户从未签到

     楼主| 发表于 2014-9-11 11:12:34 | 显示全部楼层
    yisdict 发表于 2014-9-11 10:55
    + B' Z" \1 b: P2 R- K  `vanlsaabsdb 如果要保留saa可以使用正则表达式的非贪婪模式
    ) y, K7 }/ K# c5 h9 h% R
    6 k# O" D. [/ O4 v2 C8 t/ u把 .*? 替换为空
    " }* u& U! f* _8 I3 [
    原来叫非贪婪模式,谢谢,以后再也不怕被吃数据了
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-9 12:56:06 | 显示全部楼层
    正则是利器,也是杀器…8 b2 a5 g% U" T- a& k

    2 }9 r! G& @  P用好了,一步到位。# U, ~9 R" \7 i: ^; {5 b
    用不好,瞬间崩溃…
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-11-4 03:57 , Processed in 0.020653 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表