掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1735|回复: 10

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

[复制链接]

该用户从未签到

发表于 2014-9-11 08:37:58 | 显示全部楼层 |阅读模式
本帖最后由 wubis 于 2014-9-11 09:18 编辑 & D# |1 M! n0 O
/ A. K7 `0 P. @* G
问一下:3 |( q. O+ c2 l1 S$ r) k6 Z; t( P0 D

% S) }% @' k/ `# N' P7 ]& K比如有一万个网页连接,分别是<br><div><a href="http://x.cn/z____.html">____</a></div></p>,下划线里面是26个字母和数字的任意组合,我是个完美主义的。如果想删除这些内容,有什么办法呢?
* x8 H, t" u* v" d以前用正则表达式(npp的),我丢失过数据,比如
) Z9 j/ c5 @- B, c% m& d<div>vanl</div>saa<div>bsdb</div>& N4 T0 i0 B9 w/ w3 |2 g, D
选择\<div\>.*\</div\>替换成空,有时候它会把上述全部删除,在同一行也是如此。* f8 p4 ?1 t- Q! G
' z0 q/ o( y3 C& k
对于那一万个连接,我是先注释掉,:<br><div><a href="http://x.cn/z 替换成 <!--
* Y7 \5 e' `5 O% p.html"> 替换成 --><!--
" Y. J2 [) `% [% l6 h: C注:这个中继连接个人认为是绝杀7 S% _4 L  P% K9 X! a# G
</a></div></p> 替换成  -->
: a# [, P8 A! J- u$ B2 x4 \; u并假设这三组标签全部只在网页连接用过,先抽样检查
% n5 f) w1 l. f; t* F( ]9 W9 x然后把<!--?  替换成<!-- ; D& a" E) g! I) l* O/ d( n$ W& w
?代指26字母和数字,这样一般2小时就可以把任意组合搞定,最后把<!---->替换成空就可以了; a4 s9 z: X6 L" `4 u  v
8 j; H# h9 I* L3 r7 c  I% X8 \7 H
具体替换操作
( v3 j) `7 O+ J0 y1 r6 }; r. Q1.为加快类似aaabbb的替换,把<!--a替换成<!--时重复替换,这样子变相加快速度

本帖被以下淘专辑推荐:

该用户从未签到

 楼主| 发表于 2014-9-11 08:55:34 | 显示全部楼层
本帖最后由 wubis 于 2014-9-11 09:57 编辑
; |8 y3 W3 n8 z9 r6 X( s0 m1 {! t0 t$ x
补充* @  {! T! M9 t$ g$ {+ u% [$ L
1.很多大都会用css调成display:none,这一点挺好。我有点性能癖,觉得如果css里面一大串,会不会拖慢渲染速度7 F3 F  i& B" N
2.把mdx转出纯txt做全文搜索的,或者用mdict全文搜索的,会不会搜出被隐藏的内容
; C) M( ?$ {4 \* b5 }* H1 a3.getdict能够不导出display:none的文本吗,如果这样,那就大大增强使用性了。如果有,麻烦yhssdl有空时研究以下,谢谢了。
: ^& L( V# ]! g# b: s$ K$ v4.以上3点未经考察,能力不够,手头又没有用css的mdx

该用户从未签到

发表于 2014-9-11 08:55:45 | 显示全部楼层

7 ?/ _7 @) \# Y/ t  Z9 u
) y+ k9 X4 Y  ?; _- V7 |( |" J自己写正则比较头疼。  G2 _- N$ T5 t, \2 q9 S8 I
& u# j* j, n4 {
可以用TextForever ( http://www.comicer.com/stronghorse/software/#TextForever ), 这个“文本提取”功能好用,我一直用这个来处理下载下来的N个网页文件(当然,事实上,可以在下载的时候顺便就处理了,不过为了防止误处理,我一般是把网页所有代码都给下了)。可删除“起始点和结束点之间的内容”,注意设置好起始点和终止点(以及其他设置),以免误删。0 \4 B1 D% I; Y5 ^

! G" W4 O* T2 x" x( D
$ h9 o6 [4 t. }! }" t也可以试试Search and Replace (http://www.funduc.com/search_replace.htm )0 M( t$ q- _, r
% i( v  F& h) u

该用户从未签到

发表于 2014-9-11 09:21:32 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 09:26 编辑
' {4 J! q! n$ A" M4 t5 L( v* p) P6 [% X1 c
嗯O大的那工具老好用了~, w9 F& o8 A) |4 K

& P$ d5 j6 d: S另外
6 h2 e0 X; c1 K3 \, [2 N# E! X' u$ \<br>保留么,<br>是行首么& i$ r" V- v8 b  j
如果不保留<br>,<br>是行首,试试
  1. ^<br><div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码
( v6 q( N$ h$ @2 v
保留<br>,试试
  1. <div><a href="http://x.cn/z([a-z0-9]+).html">([a-z0-9]+)</a></div></p>
复制代码

, |, x* r6 w: H8 g1 Z  N! i
* H, l' K$ U* Q* e这个正则,在emeditor、akelpad、evereidt、UE(perl模式)里面应该管用,剩下不知
+ y9 y/ s, c" a7 |) V
6 ^! \& ~' w; G. _再,您这还有半边<p>去哪儿了 - -!
7 B/ O$ S" {1 M4 P: A/ ?

该用户从未签到

 楼主| 发表于 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 编辑 7 Q0 \1 L( y8 d* Z2 `1 u+ N2 ~  J1 g

& u% r4 L% t" {+ ]' @谢谢itracy
# M# f  x' u8 T/ o- `不过,还有更狠的,比如
3 d% W3 L, o2 ?superman6 _- O$ _& O3 D, R: l
<b>superman</b> <u>noun</u> /我是一大串音标/ <br>超人/超级人/超级牛人1 Z; a  D# g) e# u/ c& J) Q, u
</>
" b* n# }- S# q# s# d: D  a9 ]怎样把音标删除,难道把所有带/的标签都先变成没有/吗
# m( j* h+ b# q  v) P! _; X$ h3 A纯属炒作,如有雷同,那是你问题6 _6 W5 @+ M& \7 T* v/ S
) U) o' A( M, F; ^7 d
正则表达式有区分中文/英文,或者东亚文字、英文,或者英文/非英文吗

该用户从未签到

发表于 2014-9-11 10:11:55 | 显示全部楼层
本帖最后由 itarcy 于 2014-9-11 10:13 编辑
+ I9 A* }; t$ |. W! R
9 L! C2 ~5 {' K$ o+ X' y音标如果都是那个格式,而且其它地方没有类似格式的文字,: Y8 d- n! \1 m8 W8 ^* s
可以试试
  1. /([^<>/]*?)/
复制代码
4 G& X2 X9 Z4 R$ Q. x

1 R$ x, r7 c. A英文就用两种\w或者[a-zA-Z],' }- j# E5 ]: U/ H  f4 D
比如纯英文的部分(\w+)或者([a-zA-Z]+)
7 l/ T9 M( }. R- m* y3 L, q' x; |& ?  C# \
中文就有些麻烦了,据说是每个字符都有Unicode范围的,您可以去百度一下0 T" U& A+ g/ N1 j
可问题是不一样的文本编辑器支持的不太一样,我自己试过的话,([一-龥]+)一般都管用
: ?2 X7 B6 p, `4 o( ~7 D! u不过遇到中文里面夹杂了中文标点的就得费功夫了6 W; w: K' x( v. ]* `! J5 t5 o6 {

; i/ f+ }0 o: G1 }3 [6 l1 l% }everedit它可以用\c替代中文; f, O( ]) T( ]1 V! ]( G
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-9-11 10:55:28 | 显示全部楼层
    <div>vanl</div>saa<div>bsdb</div> 如果要保留saa可以使用正则表达式的非贪婪模式3 U1 W2 W# J- ^% C9 X
    3 U$ B, u! M, `
    把 <div>.*?</div> 替换为空

    该用户从未签到

     楼主| 发表于 2014-9-11 11:12:34 | 显示全部楼层
    yisdict 发表于 2014-9-11 10:55+ @9 |" |! W8 R9 ], b; B
    vanlsaabsdb 如果要保留saa可以使用正则表达式的非贪婪模式3 U+ p+ y% _0 S6 ~* Y
    : m8 G3 S, f/ i
    把 .*? 替换为空

    / I2 \- Q3 c3 }! r9 U原来叫非贪婪模式,谢谢,以后再也不怕被吃数据了
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-9 12:56:06 | 显示全部楼层
    正则是利器,也是杀器…2 D) h+ j8 t2 `% H# m5 p

    3 \9 b/ @6 A, j( E6 c用好了,一步到位。& n9 C4 p0 j5 y* g( j
    用不好,瞬间崩溃…
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-17 01:40 , Processed in 0.024066 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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