掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2336|回复: 10

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

[复制链接]

该用户从未签到

发表于 2014-9-11 08:37:58 | 显示全部楼层 |阅读模式
本帖最后由 wubis 于 2014-9-11 09:18 编辑
* Z# t1 J' D. k5 g# u
* p+ ~+ @6 [; A) x( B0 |8 M问一下:# [3 @& W% c% A3 n

  ?% X1 B+ C% V3 E比如有一万个网页连接,分别是<br><div><a href="http://x.cn/z____.html">____</a></div></p>,下划线里面是26个字母和数字的任意组合,我是个完美主义的。如果想删除这些内容,有什么办法呢?$ ~0 ~9 \; p: p- K) k
以前用正则表达式(npp的),我丢失过数据,比如9 G0 J9 S: O1 l* m4 q; c) Y2 v) \# W
<div>vanl</div>saa<div>bsdb</div>
' }" U( t" E" N, t选择\<div\>.*\</div\>替换成空,有时候它会把上述全部删除,在同一行也是如此。
" g9 K7 y' [3 Q* M5 k  g$ t8 z2 ]$ g& b! z3 S
对于那一万个连接,我是先注释掉,:<br><div><a href="http://x.cn/z 替换成 <!--: P" C6 p, k0 X2 g
.html"> 替换成 --><!--
* U! ~9 v' B* n注:这个中继连接个人认为是绝杀
5 H! B& H/ ^" K7 H; W</a></div></p> 替换成  --> ' D# e* @; t2 \1 |7 w" N2 B
并假设这三组标签全部只在网页连接用过,先抽样检查0 |# |' H4 B8 R. }# T8 l
然后把<!--?  替换成<!--
3 Z7 z  {) y7 ]2 v; Y9 g$ h& l?代指26字母和数字,这样一般2小时就可以把任意组合搞定,最后把<!---->替换成空就可以了) X& ]! f, v- m' \- h

* G, X% l# @) q' p) G具体替换操作
8 }: c0 c9 Q' [, z& _1.为加快类似aaabbb的替换,把<!--a替换成<!--时重复替换,这样子变相加快速度

本帖被以下淘专辑推荐:

该用户从未签到

 楼主| 发表于 2014-9-11 08:55:34 | 显示全部楼层
本帖最后由 wubis 于 2014-9-11 09:57 编辑
' N' G; H5 I1 U: @# g$ ~+ w( w" Z  a% @/ [6 }
补充
$ J$ M+ A/ N  s4 d9 N1.很多大都会用css调成display:none,这一点挺好。我有点性能癖,觉得如果css里面一大串,会不会拖慢渲染速度
" D( j& a) J! t  t  h( W  D, I2.把mdx转出纯txt做全文搜索的,或者用mdict全文搜索的,会不会搜出被隐藏的内容
; Q& D6 ]& C0 s. [: e4 {; t" r; ~% m3.getdict能够不导出display:none的文本吗,如果这样,那就大大增强使用性了。如果有,麻烦yhssdl有空时研究以下,谢谢了。/ x& z) ?. e( ^
4.以上3点未经考察,能力不够,手头又没有用css的mdx

该用户从未签到

发表于 2014-9-11 08:55:45 | 显示全部楼层
6 ]$ v& t: G7 Y. Y6 v7 [

) }9 R$ H) s9 Q3 a' m自己写正则比较头疼。
, ]7 M& j& P. ^+ {8 u  f/ V/ k2 y8 _2 ~
可以用TextForever ( http://www.comicer.com/stronghorse/software/#TextForever ), 这个“文本提取”功能好用,我一直用这个来处理下载下来的N个网页文件(当然,事实上,可以在下载的时候顺便就处理了,不过为了防止误处理,我一般是把网页所有代码都给下了)。可删除“起始点和结束点之间的内容”,注意设置好起始点和终止点(以及其他设置),以免误删。* D5 E: _2 d) W. ^. J6 Z! p  t
1 l% W& A+ \2 ^3 z/ E8 p" ^% i. Z' W5 X

! n! Q+ W4 ]6 r+ ]# |! G" k也可以试试Search and Replace (http://www.funduc.com/search_replace.htm )
4 E- o: h3 F0 I
/ s$ K! B" M! W, H& W& F

该用户从未签到

发表于 2014-9-11 09:21:32 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 09:26 编辑
- [. c- n( u8 k4 K; g3 X
# D! T0 O; Y' W4 G1 L2 H, ^嗯O大的那工具老好用了~( L. y4 g; i5 U7 S- W, A0 P

0 i, c1 Z! `- [. @, Y# ~* r$ \0 ?6 l& w  e另外
+ Z+ V7 w1 r2 d+ {2 S<br>保留么,<br>是行首么1 m% K' t! O& [* t: n: T% w: g: {
如果不保留<br>,<br>是行首,试试
  1. ^<br><div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码

  \1 Q9 Y  T9 ?, q+ a保留<br>,试试
  1. <div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码
6 P% }" H; b* q2 d+ a1 `- P0 @

4 C* Y1 ~4 W* y- ^. _$ A, g这个正则,在emeditor、akelpad、evereidt、UE(perl模式)里面应该管用,剩下不知0 d* `, ?+ _+ ^! Q# z# r
3 r2 \5 P. u; V
再,您这还有半边<p>去哪儿了 - -!1 g' a9 ^; Y, l9 }3 H- |' B) e

该用户从未签到

 楼主| 发表于 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 编辑 - S" r! {, ]5 {# D

. G% H) F" @( J/ y3 }谢谢itracy0 s& H* X' m. E: m* J$ I; O
不过,还有更狠的,比如
) ?- T+ f: Q) R* M0 B$ e/ H( Isuperman
, G6 |7 F& a; g$ `4 v<b>superman</b> <u>noun</u> /我是一大串音标/ <br>超人/超级人/超级牛人
- ?$ C( E7 l4 k8 C! w" U; k</>4 ~, t# ?) W+ ]) m+ u. E( c3 _" \
怎样把音标删除,难道把所有带/的标签都先变成没有/吗
! w% c! D! \# o纯属炒作,如有雷同,那是你问题( O* c- |, p- Q0 q4 s$ Z

" E% P+ I9 n3 Q  \: D' A正则表达式有区分中文/英文,或者东亚文字、英文,或者英文/非英文吗

该用户从未签到

发表于 2014-9-11 10:11:55 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 10:13 编辑
& H/ ~+ ]% o0 V! Z
4 z' s" M3 U+ t音标如果都是那个格式,而且其它地方没有类似格式的文字,8 m1 P$ q) M# o6 ]
可以试试
  1. /([^<>/]*?)/
复制代码
( a( w; ~/ l7 A& m6 ?. K
" n- B" t" n' X5 S
英文就用两种\w或者[a-zA-Z],
% |' h: f+ C* A2 m. Z* M比如纯英文的部分(\w+)或者([a-zA-Z]+)
& ]  O; }' L3 K$ e5 h
7 o% ]& \% T9 M9 X" N中文就有些麻烦了,据说是每个字符都有Unicode范围的,您可以去百度一下
7 t5 D. s2 m, x+ d( N0 ~& H可问题是不一样的文本编辑器支持的不太一样,我自己试过的话,([一-龥]+)一般都管用+ E* v8 E* E- D, t3 U+ l
不过遇到中文里面夹杂了中文标点的就得费功夫了
. C# F" s* ?5 o7 l: ~" [9 ~8 b" I: ^* A& c/ f
everedit它可以用\c替代中文: m) t5 {" L) Q0 r+ ]) U
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-9-11 10:55:28 | 显示全部楼层
    <div>vanl</div>saa<div>bsdb</div> 如果要保留saa可以使用正则表达式的非贪婪模式7 y/ C8 {: w- a  a1 m/ @5 _
    3 |; {% k2 w4 ^% [) y
    把 <div>.*?</div> 替换为空

    该用户从未签到

     楼主| 发表于 2014-9-11 11:12:34 | 显示全部楼层
    yisdict 发表于 2014-9-11 10:55
    9 r- V( E4 a0 ?8 e8 B+ o3 h+ ?3 [vanlsaabsdb 如果要保留saa可以使用正则表达式的非贪婪模式# l1 e; k, [# t$ `  d

    ; ^) F" u8 @: R" ?) _' V把 .*? 替换为空

    & K2 t; p2 ]8 K6 q+ w: f; K原来叫非贪婪模式,谢谢,以后再也不怕被吃数据了
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-9 12:56:06 | 显示全部楼层
    正则是利器,也是杀器…
    # k; Q# J) n* o4 p9 T4 P0 J9 L9 @3 s2 q% Z& t, {: s
    用好了,一步到位。4 [1 Q  W4 P4 t4 @
    用不好,瞬间崩溃…
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-7-29 21:06 , Processed in 0.025014 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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