Board logo

标题: [软件教程] Office excel 常用正则表达式 [打印本页]

作者: jfx    时间: 2012-8-23 23:46     标题: Office excel 常用正则表达式

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。6 d% }2 h, M; R" S

! i5 o" {. |& N2 j) C( `0 ~0 X
8 F/ m- \+ {$ c# S7 @9 `/ C  M" H匹配中文字符的正则表达式: [\u4e00-\u9fa5]
% s) C2 o: u  v) B' e评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
  X/ J; w+ L( n' y. x; Z  V# E
! D& T" D5 d! Y  `( i匹配双字节字符(包括汉字在内):[^\x00-\xff]  s. U! O- s9 W- m  [
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
. s+ x6 N- D! h$ S+ @: r0 q) v& k, q# _4 m0 l" T0 F  K
匹配空白行的正则表达式:\n\s*\r" y9 r! ~9 o" X- ~' A  C
评注:可以用来删除空白行! l# z" T0 Q" r8 F& o9 [

, D" M* z1 q& j$ z, v匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
/ ~; s* Z3 O. L1 I" R$ b评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力: H  B# u; W: Q" l

: v+ t3 ?+ N9 ~1 O6 \. q* s* L1 B匹配首尾空白字符的正则表达式:^\s*|\s*$
" {4 p* u" o3 ?! {: C: @评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
' v" b- W7 F+ t( A
: X1 {& `) b6 Z: }. Q2 J/ p匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*# p' R* A, R$ I5 Z# }% c6 S; o
评注:表单验证时很实用
% F/ S3 `4 k0 e( {" Q4 F# z! R  n) z0 Q6 Z% A% A
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
* I$ X' l$ b* [+ |$ Z; ^% o; \" h评注:网上流传的版本功能很有限,上面这个基本可以满足需求, z% y2 a* u& k! m! Z# F2 y+ N7 ], d

) H. Y+ q# M+ \7 @+ x% x! z匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$8 {$ }- t( V" c5 j, k' F. q
评注:表单验证时很实用
- _2 r- L1 N, G
) T: b, P( A2 ^* [/ z4 d匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}" I- G% H7 V7 M
评注:匹配形式如 0511-4405222 或 021-87888822$ y6 O; x2 |# Y( |& O3 ~+ z9 y

* S# w/ Y) u6 Q8 `6 x匹配腾讯QQ号:[1-9][0-9]{4,}: P; W9 ^# l! W& o
评注:腾讯QQ号从10000开始* \* f* ^  F$ v* E8 `: t* T, z9 o
& \3 y( y, q. F6 u( N% W9 `
匹配中国邮政编码:[1-9]\d{5}(?!\d)
; c8 H$ d4 w8 |2 K) W3 S评注:中国邮政编码为6位数字
& O) H" L' t7 {7 j. `& E
! I4 L0 S9 x  Q. p2 a1 M匹配身份证:\d{15}|\d{18}
6 t. r2 V' b$ N, A- n; X评注:中国的身份证为15位或18位
, B: ^: `; g' [: f7 O( a5 z8 T" N; V! k, {( v, v, e7 U3 ~
匹配ip地址:\d+\.\d+\.\d+\.\d+
4 j; f( M- ^7 ?' |7 q评注:提取ip地址时有用: g! G% y$ g/ y9 X: _& d9 _" p

% V1 x8 K! b' `1 t: g) V  {匹配特定数字:* l: i+ ~5 C' M; `2 x
^[1-9]\d*$    //匹配正整数
! V# R- w( Z$ r: Q- m^-[1-9]\d*$   //匹配负整数
- e6 }3 l3 ^: Y/ Y^-?[1-9]\d*$   //匹配整数
7 T! r8 @& b  @7 j  N^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)+ ]  O) M$ D* L: N4 \) `7 P
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)9 ]1 K; M3 h1 G' x
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数3 h7 z' o2 S* {+ Q- @7 P5 ^( S
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
# K2 P! P1 D1 r8 w2 E% X^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
( m0 B+ d4 l9 N^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)+ T% A: S/ J7 E7 y* q$ C& m6 {
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
/ Z. @- @! o$ J) `& r评注:处理大量数据时有用,具体应用时注意修正8 H8 v, K1 r  L. K

9 _  ^0 _6 w7 Y- t$ }+ N匹配特定字符串:
- ~. W* `% Q5 L1 j! y9 w0 Z: f5 t^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
9 H1 V+ z5 n/ O: S) Z5 O) r^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
  T6 O) L; F  D! S^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
' b. Z+ r1 Y3 u^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串! p. T! S, ?- v4 ^/ k1 y% \
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
# h6 S2 M1 v& p评注:最基本也是最常用的一些表达式
" a" Z6 R7 r0 ]  V0 g1 A( J
' U% u$ b6 O8 \9 p9 p  b+ c5 d参考:网络..




欢迎光临 捷飞网络论坛 (http://bbs.fjbjdd.com/) Powered by Discuz! 7.2