TA的每日心情 | 慵懒 2018-11-26 11:30 |
---|
签到天数: 130 天 [LV.7]常住居民III
|
楼主 |
发表于 2018-6-12 09:15:08
|
显示全部楼层
本帖最后由 cixiplc66 于 2018-6-12 22:46 编辑
7 U. ?$ a! S! |& X, B9 K. g4 N& v5 z* ~' G9 ^4 u
你这样的需求一般是html源码转txt
. Z' `- Z# U3 `& U多数是直接匹配 <[^>]*?> 然后替换为空,倒无需考虑嵌套 反而简单了3 {. p' s/ _2 i0 J
& S: F) A: \) o) b3 D备注:
+ x1 h8 F2 p% S% C[^>]也可以用英文句号圆点 . 代替,3 c% F8 C# B+ O; ~& h% ^' S9 }- f
不过小圆点 . 有局限,除非开启 s 模式否则不能匹配到换行符,也就是只能处理一个看得见的行内
. O0 Y( N9 K# `,默认情况下正则把整个文本看做一行" \% g0 E& S5 B0 M
小圆点 . 要处理跨行 开启 s 模式+ ^0 ]$ {$ `6 k& @: W1 T" x' X
^ $ 这2个行首行尾位置标记要处理跨行的内容,要开启 m 模式,其中有3个很少见到的类似效果的 \A \z \Z4 b$ u' s: g: P* V3 S9 `* S% N7 ?
\A 全文开头 \z全文结尾位置 ' U, a0 i% j% h: T
\Z 无须开启 m 多行模式 就可以匹配行尾和全文结尾/ x g" {) F }7 [
\R 默认就能代替各种换行符,比\n 灵活出问题少,各种系统搞出来的文本的换行符很复杂,最常见的也有 \r \n \r\n这三种可能/ N, U+ }+ l' t3 x" |& W" n( g6 [
! _2 E# O( f+ V6 @\K 作用类似于逆向回顾,用于前面是某某某一些字符,比如: a\Kbc 能匹配到bc但是bc前面必须有个a
8 |. j0 i7 Y) U0 C# p$ O类似于 (?=a)bc
( L$ g) m* E1 {( x9 ^* C9 w
% F4 O2 c/ \% o' v' D- V/ J6 T所有全角双字节字符含标点
% J7 [, a9 r4 k" h- [[:unicode:]]: |) v+ E" a/ y. |3 c; @& V+ L
& \; n: x' `% Z) C; t- 等同于 [^\x00-\xff]
复制代码
3 ]. X2 H' y" g# j% K0 @4 g6 ?, y; w6 x. s/ M7 z
' O+ J. {/ f" k+ G W中日韩双字节全角字符- e' k U# M8 w3 D. Y
- 含生僻字中文[\x{2E80}-\x{FE4F}]3 |: I# a; B2 }; V7 F
- [\x{3000}-\x{9FFF}] XeCJK 中日韩
( S2 ~& d) |# X' E, t8 \1 O( P - // 汉字范围 [\x0391-\xffe5]
复制代码
. i7 a6 p- E& v( d* [
2 E. f1 c7 v# j O7 J中文标点
" K# G* n3 o8 T3 I, x% x$ O$ g* a- [\x{3000}-\x{301e}\x{fe10}-\x{fe19}\x{fe30}-\x{fe44}\x{fe50}-\x{fe6b}\x{ff01}-\x{ffee}]
9 l0 K7 c5 }! F% t - [中文标点符号unicode码 - CSDN博客](https://blog.csdn.net/miyunhong/article/details/43528897)
复制代码
5 F3 Y8 @5 I# u8 f' a
0 f. z% a! N3 G7 N英文标点
0 h9 l2 s F3 `; Z- [[:punct:]]9 f9 B& G% h6 A, Y! G' g
- \p{Punct}
复制代码
' c' x! x+ a2 g: U1 r8 x5 V' I$ @. ~# U( L
- \p{L} 等于 [a-z]
/ w8 k; J' @' A& L/ i - \p{U} 等于[A-Z]
复制代码
/ j- g( X7 A; Q% M) l" `: ~) c: V' M% |$ j1 K( f
匹配某些特定图片img标签,
/ _! Y! e% `) X3 N1. 允许src有时候不紧跟在 <img 后面
# r% ~: l9 h( q1 ^& m- B7 g2. src= 后面可能英文或中文引号,如果可能没有引号还得改为 ['"]?
8 I6 C" }8 k; ]; K9 u$ m- <img[^>]+src=['"]img/spkr_[^>]+>
复制代码
2 }0 g/ r3 c, @/ j# t2 K4 ~- k8 T3 R0 W* g* V- E$ I5 Z0 p, p
双引号的问题
) `3 u% n: v/ g; R+ [多数时候正则中的双引号是个需要特别处理的,比如在一些脚本中,需要连续2个 "" 来代表 一个 "6 N; E% I k7 o6 d
只是在一些编辑器中好像又不需要特别处理& t5 M6 M; I- r9 d) { U$ a7 N
|
评分
-
1
查看全部评分
-
|