掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1560|回复: 10

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

[复制链接]

该用户从未签到

发表于 2014-9-11 08:37:58 | 显示全部楼层 |阅读模式
本帖最后由 wubis 于 2014-9-11 09:18 编辑
- A! v/ Z) b5 m* b: C3 ]' L( Y, `! i) ?
9 j  n4 h* B5 _+ v问一下:" J; V; A6 {# E& A; {8 N( U
4 y2 ~7 U! {) ?, t4 |
比如有一万个网页连接,分别是<br><div><a href="http://x.cn/z____.html">____</a></div></p>,下划线里面是26个字母和数字的任意组合,我是个完美主义的。如果想删除这些内容,有什么办法呢?/ _5 A- V2 s6 K2 `- x
以前用正则表达式(npp的),我丢失过数据,比如$ _" L. M* |. f# v- m
<div>vanl</div>saa<div>bsdb</div>/ j5 u2 Y2 ~9 C# L
选择\<div\>.*\</div\>替换成空,有时候它会把上述全部删除,在同一行也是如此。
/ Y+ n( U0 _+ T$ o9 O. M0 i* t( H1 n) w; o
对于那一万个连接,我是先注释掉,:<br><div><a href="http://x.cn/z 替换成 <!--# h' ]3 @8 m0 {$ o; T) c4 g
.html"> 替换成 --><!-- ( J$ y) w8 w4 O1 T
注:这个中继连接个人认为是绝杀
( ]5 F! I' ]+ R! v( d7 X- C</a></div></p> 替换成  -->
8 p( ~  E& d' P7 F" y4 y并假设这三组标签全部只在网页连接用过,先抽样检查
8 H, `+ B/ T, j然后把<!--?  替换成<!--
' l+ H# ^5 U: p  k* c2 P2 Q4 d?代指26字母和数字,这样一般2小时就可以把任意组合搞定,最后把<!---->替换成空就可以了: K0 y3 O( _. c4 O8 v# U$ A
! c' A- v3 W- H+ L4 b5 A$ m: B
具体替换操作5 a/ v. Q( ^; Q; y1 ]
1.为加快类似aaabbb的替换,把<!--a替换成<!--时重复替换,这样子变相加快速度

本帖被以下淘专辑推荐:

该用户从未签到

 楼主| 发表于 2014-9-11 08:55:34 | 显示全部楼层
本帖最后由 wubis 于 2014-9-11 09:57 编辑 3 Z' s/ D' b+ k& q  A' ^( B
0 Z7 c1 V$ K8 r, z0 S
补充
  s( Z4 h) G) g0 s* h) Y1.很多大都会用css调成display:none,这一点挺好。我有点性能癖,觉得如果css里面一大串,会不会拖慢渲染速度3 Y( ~  p4 M2 U
2.把mdx转出纯txt做全文搜索的,或者用mdict全文搜索的,会不会搜出被隐藏的内容* t* @, G. Y3 Q2 ?1 e& K) Y4 \" y: X
3.getdict能够不导出display:none的文本吗,如果这样,那就大大增强使用性了。如果有,麻烦yhssdl有空时研究以下,谢谢了。: D7 h# Z& `' Q& E- I2 n
4.以上3点未经考察,能力不够,手头又没有用css的mdx

该用户从未签到

发表于 2014-9-11 08:55:45 | 显示全部楼层
# B& ]# \5 W2 [$ c( z- j! z. q
. s+ k1 E% V3 `. \* n1 b8 \, V
自己写正则比较头疼。/ S, x4 K" e& x7 L

( t, F8 K1 I8 V可以用TextForever ( http://www.comicer.com/stronghorse/software/#TextForever ), 这个“文本提取”功能好用,我一直用这个来处理下载下来的N个网页文件(当然,事实上,可以在下载的时候顺便就处理了,不过为了防止误处理,我一般是把网页所有代码都给下了)。可删除“起始点和结束点之间的内容”,注意设置好起始点和终止点(以及其他设置),以免误删。
/ Y0 H* r5 l6 s; P# B

" Q* a2 f1 }; [5 A: C# D" O- ^
# D/ v* R3 U/ ~" L* R2 V6 I也可以试试Search and Replace (http://www.funduc.com/search_replace.htm )1 `6 ~5 b- w) E7 |! Q

7 G3 b  H' \, k+ ^' l" K

该用户从未签到

发表于 2014-9-11 09:21:32 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 09:26 编辑
( w& i- w. b# g  N) z. G( n. e& }. |' A* `& B
嗯O大的那工具老好用了~
2 d4 U+ y7 `6 ], b. a* H) z3 c# z7 p* `, z
另外
* Y# _# t; F% ^9 _<br>保留么,<br>是行首么6 h) t1 ~' S9 p# [" F: L
如果不保留<br>,<br>是行首,试试
  1. ^<br><div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码

* i  U% E& S. o' m/ c保留<br>,试试
  1. <div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码

9 Z* K' b8 f- q9 c& B) L
, k6 i# b6 O& n, f这个正则,在emeditor、akelpad、evereidt、UE(perl模式)里面应该管用,剩下不知: ~) o+ a% a& u$ g+ o
5 D  C) X6 M( d( O9 {/ M4 j2 S3 Y
再,您这还有半边<p>去哪儿了 - -!
! \; r" ?% X. d

该用户从未签到

 楼主| 发表于 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 编辑
- a) M7 B7 o8 A! F5 V6 |! s& G6 p* a7 j6 t0 E
谢谢itracy
9 p% c- Q* d" N. H& ]2 ^不过,还有更狠的,比如
1 T# @; z) C* Fsuperman
; E: r: ]: S6 o9 S; O7 M<b>superman</b> <u>noun</u> /我是一大串音标/ <br>超人/超级人/超级牛人
" H) O  R+ f9 u7 ?</>1 d; S& z$ n5 b- L/ l& h/ ~3 s
怎样把音标删除,难道把所有带/的标签都先变成没有/吗( x2 e1 `6 @( g8 Z9 `$ ?" P& d& z1 p0 ^
纯属炒作,如有雷同,那是你问题
! Y" \. u( F/ I( F6 k' [9 {
, h) _5 @/ i& j3 R/ o: s正则表达式有区分中文/英文,或者东亚文字、英文,或者英文/非英文吗

该用户从未签到

发表于 2014-9-11 10:11:55 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 10:13 编辑 : q) u/ i0 q+ ]/ x

4 V$ P" @: r+ h' t音标如果都是那个格式,而且其它地方没有类似格式的文字,5 u! M  r! Z. b# B; D
可以试试
  1. /([^<>/]*?)/
复制代码

" k1 j2 h" h8 z3 S6 L) r1 L$ m
- j9 H. g: n# ]5 `$ S' R2 S! M! _英文就用两种\w或者[a-zA-Z],; t* m! \, r8 ^5 B; Z: y2 V
比如纯英文的部分(\w+)或者([a-zA-Z]+)
/ n- R7 u4 h! N. H. P# F& Z; T
) p0 f( f# {# m7 p中文就有些麻烦了,据说是每个字符都有Unicode范围的,您可以去百度一下9 R4 Q* r9 G8 J$ y4 z
可问题是不一样的文本编辑器支持的不太一样,我自己试过的话,([一-龥]+)一般都管用
  f& E) Q2 L" Z' ?- l/ F: v不过遇到中文里面夹杂了中文标点的就得费功夫了4 \- T; }& G( h3 w; g4 i6 o
( c# T9 @& r, ^& X
everedit它可以用\c替代中文+ `, h0 j9 j( |% a+ w; D7 p$ S2 @
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-9-11 10:55:28 | 显示全部楼层
    <div>vanl</div>saa<div>bsdb</div> 如果要保留saa可以使用正则表达式的非贪婪模式# ^9 Z5 |5 k  a. o7 ]' ]
    & i+ d& V! I5 Y' H' D' H: s- _3 {# T
    把 <div>.*?</div> 替换为空

    该用户从未签到

     楼主| 发表于 2014-9-11 11:12:34 | 显示全部楼层
    yisdict 发表于 2014-9-11 10:55% R( z. d) R, Q2 r. C$ m" m" X
    vanlsaabsdb 如果要保留saa可以使用正则表达式的非贪婪模式) l; \; L2 @' c% l' |0 d
    6 Q7 F6 M* \  E/ t9 V
    把 .*? 替换为空
    1 v2 S7 d8 m9 C8 T( Y, E3 z
    原来叫非贪婪模式,谢谢,以后再也不怕被吃数据了
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-9 12:56:06 | 显示全部楼层
    正则是利器,也是杀器…
    - U1 i3 h2 m; a4 m4 ]1 G, T& ?* Q$ p4 e
    用好了,一步到位。
    8 {$ b2 u; A( `  C用不好,瞬间崩溃…
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-12 16:42 , Processed in 0.068134 second(s), 15 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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