聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼
) h* x# z, B7 d0 `也不是太明白
1 ?# G7 |, R+ ^( wscritpt professor 2.94b,我們測試添加一個gofeed的feed:7 [" O9 ~3 Z3 K$ B( S# {
6 K. n# S% t' i" }2 V
+ A3 w& O" x, o: a- i5 @) W* k3 Z( U基礎知識:
1 ^% q) x( |8 Nperl字符串處理命令:- i8 V4 o' y/ V( t. `2 Y1 Y e
perl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:' p8 c+ d! y* ]3 n/ {
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已
! J E% Q2 W; A6 q$ D, k2 t5 q7 l/ i
\ n 換行* e, [6 c+ o" ^% |0 I
\ r 回車9 N( P& D4 ] a+ D& n% @
\ t 製表符; ?- D! B5 k: z) Z9 E, G: S
\ b 退格
2 A& c2 H8 @3 c3 k! x\ u 將下一個字符改為大寫
) ]' Y/ @$ @. ^9 b) X\ l 將下一個字符改為小寫* y6 U) a$ B) Q1 O
\ \ 直接量反斜槓字符
- S/ t; d$ ~( [\ ' 用單引號( ' ')括起來的字符串中的直接量'
8 N* f) \; L& v7 ?7 N$ N& |9 G' `\ " 用引號括起來的字符串中的直接量"
' f8 l. e# D/ X 除了換行字符\n外,找尋只有一個字符的字符串
8 P5 \' a1 y; i& M9 p; \$ M7 D5 @) \+ F
x? 找尋0個或是1個x字符 3 c3 r4 B; O( |/ s
/ R9 d" Q8 b6 O# L( W6 u2 Q; ?
x* 找尋0個或是0個以上的x字符 3 c3 k+ F9 l/ q3 ]
. v( Z7 h2 C/ X.* 找尋0個或是0個以上的任何字符
' m8 G6 v- q& g2 w2 X: \: z
! X2 s% o8 F" u! w; ]1 M- Ux+ 找尋0個或是1個以上的x字符 : F8 d- {8 D# D9 F% N j" {3 }/ K5 U' ?
0 T' o) d2 Z2 H% @# G) w# w9 A3 T( u.+ 找尋1個或是1個以上的任何字符
9 _- O# V. Q. d5 w7 k1 m2 g9 z1 c. v
{m} 找尋剛好是m個個數指定的字符 " ~" O( h8 B& U5 S
6 \3 a3 u4 } x/ l) Z h% V
{m,n} 找尋在m個數個數以上,n個個數以下指定的字符
! J* D4 f2 m+ ~, _1 T2 ^0 y" F1 F# P' z, G! k& c6 ~! ]
{m,} 找尋m個個數以上指定的字符
- A$ g/ c+ o4 E5 n; u+ ?) c; z- @8 x- c% [3 q0 R0 R1 H3 [( Q
〔〕 找尋符合〔〕內的字符 % b7 @2 f- `, R3 h! P% q
* ^2 C& m% _ I% p9 _% W
〔^〕 找尋不符合〔〕內的字符 % K% y0 C/ ]0 U9 Y0 W6 o
9 z5 h$ p- t( z% B/ e+ C8 s, O" v
〔0-9〕 找尋符合0到9的任何一個字符
6 _: m: F: i. N$ l4 e
: N+ d) @3 K7 u, s〔a-z〕 找尋符合a到z的任何一個字符
0 t @' @9 t3 }$ ^0 L! `# P2 V/ S) X: a+ b$ B
〔^0-9〕 找尋不符合0到9的任何一個字符
, F2 D9 S) K: [) n/ V5 K) d2 }% t9 _. e
〔^a-z〕 找尋不符合a到z的任何一個字符
4 ~, o* K) o2 J7 m* a( r1 w5 Q0 H" ~5 v4 R+ N+ B: g
^ 找尋字符開頭的字符 2 Q# f( z4 Z/ |- p2 ]
2 n u4 S. a3 @' j1 |1 T
$ 找尋字符結尾的字符
, z: h& R: ?% p% K( U( ^7 ^5 v. S1 s+ R8 l L1 p
\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣
! k0 u- \# g& S' K" S& m5 o7 q3 E# b$ A# ?) r/ M0 k
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣
7 H! C8 D/ E) p* h5 q2 n0 {5 B1 h2 K
- P8 m$ ^* Z0 K& I' o+ y" R\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣 * l9 p$ K/ F r& J/ V' ~5 T
0 C# s2 ]) A) O( ~4 _0 z0 T1 x4 F\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣
/ @3 c" n9 _. b0 q3 d: M
1 e; W- k9 @/ i: a. G\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 t" q. Z5 p. H F5 c9 E
! b1 G% w, ~; }\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣 9 Z3 i/ c) s, a+ ^
- o) |6 |+ t8 J; m2 l
\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣
+ J# a7 l3 z# F+ l) V( X7 z& S
, R: C3 [% k0 h3 E# Z\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣
9 V: f z' C8 j
6 o H3 C$ b F& Z: ?\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣
* H4 y# ^3 R. i% m! a! b1 a: C
9 |" x+ f8 r& E, u% W% z\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣 3 h. b/ `4 t y f, H8 d
( [, ^2 F0 E* y
\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣
2 _2 h" K# j! K% I! A3 Y" n0 v0 m$ N# ^
\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣 1 h5 A" v5 V7 |8 b: L
& k! `; G- w3 ^! I$ `/ X
\b 找尋一個不以英文字母,數值為邊界的字符串 ! @' d9 t+ [/ F' g. `2 W6 P
' R; M! M0 k4 x1 S7 e' I
\B 找尋一個以英文字母,數值為邊界的字符串 O: I5 k" q! e/ I* y1 N9 t
! `: W& \" ]( m' w* e: r" A4 L# d, K0 ~4 \a|b|c 找到符合a字符或是b字符或是c字符的字符串
1 o5 v2 i9 A2 S/ l4 \
# y F" ]/ w: {6 g2 u6 o7 Babc 找到一個含有abc的字符串 " F$ l0 T1 [1 F T7 {, t9 A
' E+ T+ {( d" M$ |2 N( V
pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法
/ w. |1 Z6 E# ?; v
; c& j) N1 }0 Y+ c9 A' J; ^3 y& S7 V 第一個()內所找到的字符串變成$1這個變量或是\1變量
+ r, g+ e- ^! p1 ~# N
- T# y; } V6 ]. S4 k/ k; z 第二個()內所找到的字符串變成$2這個變量或是\2變量 & F2 u' |" t3 V" K- s
/^perl/ 找到開頭是perl的字符串
: M8 G) w [: q; Q/ C: `# u& {3 D/ @9 g d1 _. `- K `9 P- B& X( Q
/perl$/ 找到結尾是perl的字符串 ) o! `1 k2 Q9 t% a) o3 `+ o
. c4 \' Q- v9 J+ T/c|g|i/ 找到含有c或g或i的字符串
g j" q' ~) M9 a( K) m, s0 O( r1 t
/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串
r' W' j' j$ c* y4 ~; n5 E9 S1 f" r' ^' G$ ^$ z* w. Z ]
/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串
; v; @; ^: F3 H% c& T4 ?) D2 |: E
8 p1 E" X& l& K# t; l/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串 0 u% P% R) c& m( J
; `9 P6 f8 v5 A b' T1 n6 H$ R
/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/ . Z* C- ~$ p# @9 M
& U9 O3 ~0 p J7 g# O3 \
/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/
6 @: ~0 k2 [) x
6 ^$ O" m& ^3 ~, H3 J3 f/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/
6 v, k; |- P+ L* ?& S
1 ]8 U2 i( U8 g# w3 G! ?/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串
; Q& ]+ q+ d9 I/ S F: a
" o9 G; A9 i$ B/ A/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串
) }( Z. D. _" C2 R* U/ ~/ g- N& w# \* i
/〔cgi〕/ 找到符合有這三個字符任意一個的字符串 $ F, k7 A0 ^* m6 @ v7 @
: r& F# W1 L+ e/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串
# A( x% q# ]" E4 @
* x# v+ N! ?' w/\d/ 找尋符合數值的字符串
& Z: z& F3 y) g: L% d1 R7 X3 b2 A# w) |( g' D0 K( N" ^" v% S
可以使用/\d+/來表示一個或是多個數值的字符串 ) X, U7 P" v9 ?
7 k9 ^3 K0 x: g; c/\D/ 找尋符合不是數值的字符串
3 _- P7 F6 x o$ h$ Z
6 @7 w# r0 w: l) N4 b0 L+ N& R 可以使用/\D+/來表示一個或是更多個非數值的字符串
0 y: @; Q1 c/ s1 M m/ }8 K$ w |% t! t$ Y8 [: ]# u- T; g
/\w/ 找尋符合英文字母,數值的字符串
, c; Z& T5 p) @6 W& y
; L1 y4 }4 d* r; _& d I 可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串
# `8 J4 N; K3 b
4 l9 y" n* C1 \, c/\W/ 找尋符合非英文字母,數值字符的字符串 : r' ^- _. e8 L8 _6 ~& p- Y
1 }( y* ^$ [. C' e9 ?" w0 y
可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串 5 ], Y1 w$ R X
9 |2 J T9 m1 @2 u. z
/\s/ 找尋符合空白的字符串
9 U! e) ?& Q/ y$ X9 S1 n! f5 p1 a* ] B( W1 C( J: k4 m
可以使用/\s+/來表示一個或是更多個空白字符的字符串 V2 ?' V5 J$ k) {, X
3 R& T, ?% D: N* a' `! _/\S/ 找尋符合不是空白的字符串
# W$ g/ I0 b0 F+ m2 _5 }8 [. H1 f0 i; a! O7 j& j
可以使用/\S+/來表示一個或是更多不是空白的字符的字符串 6 n; h/ W4 S8 L; j3 j7 J3 K4 N
0 E" ?: i5 M" E5 b0 ?$ T$ {; B5 k
/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效 % w. F" K5 r- T1 b2 B2 g P
5 L0 ~+ z' h3 k7 q. D: h- w/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫
1 r9 { f7 ~& B: |6 E
2 H( @# d6 c# w% ~" V[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|