TA的每日心情 | 慵懒 2018-11-26 11:30 |
---|
签到天数: 130 天 [LV.7]常住居民III
|
楼主 |
发表于 2018-6-12 09:15:08
|
显示全部楼层
本帖最后由 cixiplc66 于 2018-6-12 22:46 编辑 5 Q8 a6 h, n$ f
" L( }+ r& Q' ?6 F9 H1 u你这样的需求一般是html源码转txt / m) E* d% h+ n" [9 J
多数是直接匹配 <[^>]*?> 然后替换为空,倒无需考虑嵌套 反而简单了% E1 g# j0 g# P8 R& ^0 \; K
' X( r) ?* h+ x$ g
备注:
+ i. z8 Q& p) z% l: R5 U- D[^>]也可以用英文句号圆点 . 代替,
" i5 Y% \$ p" r( P ]( s) w不过小圆点 . 有局限,除非开启 s 模式否则不能匹配到换行符,也就是只能处理一个看得见的行内" a6 t' [3 f) j2 m) e/ B' Q
,默认情况下正则把整个文本看做一行
4 N/ }. s* i2 W- M& c( l5 U3 U2 @& B小圆点 . 要处理跨行 开启 s 模式
6 m5 B. j* a" G1 i^ $ 这2个行首行尾位置标记要处理跨行的内容,要开启 m 模式,其中有3个很少见到的类似效果的 \A \z \Z
: j$ A# E: R3 v6 j( P0 ^4 u\A 全文开头 \z全文结尾位置
+ i5 \( E0 s1 G0 U5 V" r\Z 无须开启 m 多行模式 就可以匹配行尾和全文结尾: ^$ B- _0 d1 X; ~
\R 默认就能代替各种换行符,比\n 灵活出问题少,各种系统搞出来的文本的换行符很复杂,最常见的也有 \r \n \r\n这三种可能
) G+ \) X& i5 o( E% H9 W1 I# w7 [
2 g. ~9 F: B8 A# Y, o3 n3 @\K 作用类似于逆向回顾,用于前面是某某某一些字符,比如: a\Kbc 能匹配到bc但是bc前面必须有个a8 U2 j* Z8 v2 V( |" H q
类似于 (?=a)bc+ n5 v$ e0 L/ @
9 D4 v+ q- G6 o8 h' g% y2 Z$ W2 T
所有全角双字节字符含标点- h7 |9 R+ M Z/ `
- [[:unicode:]]3 J" M7 _$ N; l+ ]
1 h) E8 x; l$ T' O+ h* z% c- 等同于 [^\x00-\xff]
复制代码
& b& ^3 ?) \ V
% S3 G& O! |) ^8 l
* Q- S& z+ v# m中日韩双字节全角字符
, s+ q. K# J( x6 ]$ [$ u# |5 T7 W! x- 含生僻字中文[\x{2E80}-\x{FE4F}]+ y6 Z8 p: K! ^, {& ]1 l7 O: N
- [\x{3000}-\x{9FFF}] XeCJK 中日韩) [$ z1 p! {9 X6 V! ]3 p3 \, z) O
- // 汉字范围 [\x0391-\xffe5]
复制代码 0 F3 V w2 l" Y \7 ?
5 w* l% ]# ]5 T) P/ r
中文标点' Z- _' [9 U0 f# N" y+ H. y
- [\x{3000}-\x{301e}\x{fe10}-\x{fe19}\x{fe30}-\x{fe44}\x{fe50}-\x{fe6b}\x{ff01}-\x{ffee}]0 v( N8 q3 n* f" C$ s
- [中文标点符号unicode码 - CSDN博客](https://blog.csdn.net/miyunhong/article/details/43528897)
复制代码
: R7 c+ k4 e. W( C4 i; R, f, ^( V( @$ n: E" B
英文标点
5 q: J J% R, W0 i- [[:punct:]]1 S# U1 y2 u2 q. H) i
- \p{Punct}
复制代码
4 j$ C) Z8 E4 N) h. K9 i. C/ q+ X+ b2 Y. A
- \p{L} 等于 [a-z]
+ D0 I8 F r6 t4 R - \p{U} 等于[A-Z]
复制代码 1 k d* i/ m. u
$ o$ l3 U7 ?2 D
匹配某些特定图片img标签,0 ~: T- y. |* ~+ y: A6 u: X
1. 允许src有时候不紧跟在 <img 后面6 L6 j1 b, Z: b( z; y& {
2. src= 后面可能英文或中文引号,如果可能没有引号还得改为 ['"]?
2 t. X/ }5 b+ i: H. t5 I+ k" D6 J2 d- <img[^>]+src=['"]img/spkr_[^>]+>
复制代码
9 R3 N3 r4 ]6 P; S4 i) X( |
* b7 l6 h$ V* d1 g$ R' u双引号的问题
% {2 w2 {- j5 V6 O* @8 n1 T多数时候正则中的双引号是个需要特别处理的,比如在一些脚本中,需要连续2个 "" 来代表 一个 " e' R9 G8 x& k3 [9 B' x# ~
只是在一些编辑器中好像又不需要特别处理
4 `2 Q' u- w S* W: x5 i" c |
评分
-
1
查看全部评分
-
|