聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼
7 `1 o$ u b; Z7 B也不是太明白5 q. K6 B; f$ L+ `) ]6 F
scritpt professor 2.94b,我們測試添加一個gofeed的feed:
4 W; K, }3 N7 A3 P* W% w, e5 k2 e0 J4 E
& E) d$ i/ z4 a+ K" P. P& \) b9 Q x Q
基礎知識:
1 U# S2 d# l: s6 e- | K/ K! _( Jperl字符串處理命令:# I( p' t. E1 i) o+ w0 b
perl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:
" Y/ C: j/ l/ l6 ?1 ?" X3 s大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已% `+ b, K- F9 d0 B; E9 @, r
4 i9 ]9 B! L: ?! |$ K) ^- Z\ n 換行5 ~+ y; d1 ?1 Y5 C/ B
\ r 回車) y8 T# w+ t5 \0 T- _" r/ k1 |
\ t 製表符
& E) k0 q2 y! T\ b 退格9 _9 w N; r) K$ W+ ` K
\ u 將下一個字符改為大寫4 L0 S0 E! e4 ~* ^
\ l 將下一個字符改為小寫4 B- R/ m: u8 w3 g6 l+ ]
\ \ 直接量反斜槓字符
) B1 @6 F( U4 S7 ~\ ' 用單引號( ' ')括起來的字符串中的直接量'
! u0 V5 n# x# `! Q- l\ " 用引號括起來的字符串中的直接量"3 h) v' Z( s$ K% l
除了換行字符\n外,找尋只有一個字符的字符串
0 n9 j- y5 M; z) X+ G) u3 w
$ t( U" D9 t/ R0 Z9 Y9 Qx? 找尋0個或是1個x字符 8 ]' p( ] W6 n k* w0 x9 R
& S& L2 _ I) q/ O, R
x* 找尋0個或是0個以上的x字符
" a/ [+ N3 W W$ { d9 F7 k6 \: I4 g; z u. g! I! A/ ~
.* 找尋0個或是0個以上的任何字符 7 f( ], F& ~. ^" X# M( r
+ n: Y0 h- p5 O8 K+ @
x+ 找尋0個或是1個以上的x字符
. ~7 G* h3 h9 v, a% t
3 R0 D: ]6 ?# b.+ 找尋1個或是1個以上的任何字符 ' b/ h# m/ p# y9 V/ P
& s0 Y1 r$ D% H& o{m} 找尋剛好是m個個數指定的字符 $ t* X) T* h1 X; \! a" o
% X* Q4 |: J- }6 ]4 P{m,n} 找尋在m個數個數以上,n個個數以下指定的字符 5 a' ]' A# Y/ h, L2 X- B0 b
. p8 w/ |' C3 K5 ?. l) x: w7 J+ h% @
{m,} 找尋m個個數以上指定的字符 6 K8 Y- S3 \$ }+ K5 I
& W& x0 W1 x2 H9 X. M. @; y
〔〕 找尋符合〔〕內的字符
0 ?: ~. y# G! Z: c- L4 X9 @* X9 Z/ j% ^" e! [
〔^〕 找尋不符合〔〕內的字符
' R. W, v8 ]$ B |
8 x) m( _/ i. i" }: x% M$ L1 O〔0-9〕 找尋符合0到9的任何一個字符
2 M' k7 z+ C4 ^3 n: M3 z! p+ X4 N( g4 b
〔a-z〕 找尋符合a到z的任何一個字符
L7 O e* U/ L; R7 u" G# j- z) e6 B2 f. h% _, u
〔^0-9〕 找尋不符合0到9的任何一個字符 9 |/ R d: P/ O% F9 K* l8 g
: H0 m! S& `' H' I7 _9 v〔^a-z〕 找尋不符合a到z的任何一個字符
7 x+ _' v, |* l/ H; M4 {: G- [3 M g) a+ H( @! M* J% t6 d
^ 找尋字符開頭的字符 - k4 Z2 h7 C2 R+ ^' K$ f
) `' K- _5 T: C4 U+ N
$ 找尋字符結尾的字符
2 n) ?( A/ u' i9 O
$ |/ H8 R! F! ]5 d\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣 3 q7 M5 f o, W; S k2 q' K
! \6 h2 w2 P1 _8 N
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣
, p6 }- d2 M% D8 F7 N" E) j: U' z ~: H0 Z
\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣
8 F% r: }" A% d. h: z
6 ?+ E4 B: _; P; g/ m8 n9 v\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣
0 R, |$ Q; ~* \: G. ~& n* s2 e8 K7 K$ C. l9 H7 X8 V
\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣
: O7 e, n1 J+ ~% ^4 s% F2 w; s8 Z, ^( b1 G
\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
* [ R: Z+ q9 l N& F
5 n' u+ P+ q0 L2 N8 T\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣 0 G" {( l Q* |; s9 Y( m
4 O; p/ m, n2 n3 p5 }
\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣 + R, B! {0 ~1 v1 ^& f0 r
2 {5 H+ ^( ]% [. Y( D\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣 9 f! s$ O9 N5 b$ `, @: b1 U3 [; E$ R
2 [& y0 ?9 I: ~3 y; B9 W
\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣 5 E& N, t$ g0 f7 p7 D' Y: w' C
`* E! x2 m: j" h! J\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣 / D% i. d& @% E. ]8 R
4 T" t" b7 I$ E: |3 T\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣
+ f, w2 l- H3 _3 ~1 n3 |3 k
7 T# D& w L5 z. D\b 找尋一個不以英文字母,數值為邊界的字符串
9 R; e$ m5 g6 e5 I, w% H8 n4 h, o1 {, r: ?% u& K7 R
\B 找尋一個以英文字母,數值為邊界的字符串 & E( C9 {" [, x
+ f0 t+ k5 d' na|b|c 找到符合a字符或是b字符或是c字符的字符串
5 [! w' q- @6 }8 {! M& Q0 V( v" m. R6 O3 y
abc 找到一個含有abc的字符串 & Y; _! J4 o( e5 R( V
0 n0 v) H- \0 |* e3 k7 V
pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法 8 z6 O) C- [8 s' Q
% M3 Y8 f( @9 }0 O1 f! e
第一個()內所找到的字符串變成$1這個變量或是\1變量
: [' }# ]3 Y! t, \' J# Q% R
! c* J' k4 p$ z3 @ 第二個()內所找到的字符串變成$2這個變量或是\2變量 6 H$ i, b% T8 } V* l8 I2 C' t
/^perl/ 找到開頭是perl的字符串 5 }# l, O' ~9 T) R/ j! n
/ s. l: K' G7 H2 M6 R1 n/perl$/ 找到結尾是perl的字符串
1 U, h, [ M2 {0 f+ k# W* m' @9 D5 }5 i& X: O5 E2 q0 G# S
/c|g|i/ 找到含有c或g或i的字符串
! B3 b5 }. {" ~) u2 D
7 p% t4 E( ~! C6 A+ o' {/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串
/ t6 \* t0 k9 h
& ?2 h) }* I+ y* |/ Y0 P% _/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串 + c' ~, ]7 E6 a
C6 H* e9 \# i L9 c3 @6 a$ I6 f6 F. Z$ J, K
/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串
7 s9 D$ \( D( D. @
3 a! k5 ?3 E. P8 A: i/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
8 X7 _5 _! y, R6 B: [1 \
, Z8 T0 O; ^/ g5 u! h/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/ $ k% g0 x+ z' M4 Z B
7 k% _* ^; ?1 o( V+ u/ P- U
/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/ ' P* j4 F4 M4 C- l
2 k3 |& b/ p1 j5 [% s! @
/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串 4 x; D3 ^ t7 m& ?/ T: f
% |; ]5 S6 M# F. [3 g/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串 $ J8 S$ M! E# X, e# U# j
' v" d( ~5 M$ s
/〔cgi〕/ 找到符合有這三個字符任意一個的字符串
! D% Z [5 }0 [( x" s
: g% V2 P4 u2 z8 T; R2 h' L1 Z' u/ c/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串
9 t% E3 U4 r. j' a- r
- e; z) g$ E( r6 \- A7 p* p/\d/ 找尋符合數值的字符串 , J( W# R( O) M! \6 [/ ]4 \* D
" N' r+ n6 K" `0 g 可以使用/\d+/來表示一個或是多個數值的字符串
" l- Y% d5 V! G! O$ I3 h5 S& R$ j5 @2 |) v8 R0 q; t
/\D/ 找尋符合不是數值的字符串
3 v4 v9 m- z6 c( K' D& l/ q/ p, q2 ?6 j. w4 a' q
可以使用/\D+/來表示一個或是更多個非數值的字符串
' h% X& M/ |& B# q9 X$ w9 h$ d( v3 i2 G [
/\w/ 找尋符合英文字母,數值的字符串
- Q+ [5 `$ d# T; T0 i
0 Y% V/ @' J, h8 ]1 s4 ? 可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串 & z7 o- S7 ?0 T. q
0 Y) P0 f$ N8 e
/\W/ 找尋符合非英文字母,數值字符的字符串 & m& X+ w& W' U: {7 G' A( O
3 `: D P4 ~2 ]8 a6 ]* t) A: L 可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串
6 t4 X9 \ w& P
v5 b& H$ E- g& \9 N* s* G/\s/ 找尋符合空白的字符串
$ t% Y5 B; b0 `8 @: I' p6 W. g! U
( q& g3 C1 X# K9 ^+ M5 C/ ~; W 可以使用/\s+/來表示一個或是更多個空白字符的字符串 3 l+ J8 j9 X- V* g3 y8 p5 { j
3 K5 I0 c" G; K# P, b
/\S/ 找尋符合不是空白的字符串
5 [7 \0 X9 r2 o" N
" F2 Y7 @: M; m- E. C0 O% P2 p 可以使用/\S+/來表示一個或是更多不是空白的字符的字符串
0 o9 L$ ]" @1 W R* z/ j
( v+ M0 d2 N, z# F) O- U/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效 & m3 r+ [7 @; m
1 l( R+ X! x: m+ I5 f
/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫2 s5 e) Z; \4 H" E8 K+ ? p8 d
2 L5 r9 }3 A; Y$ a! {: r
[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|