聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼
; o# f2 {( K r* E+ G. g也不是太明白) P; i1 s/ ]! h" ^/ G, N \
scritpt professor 2.94b,我們測試添加一個gofeed的feed:
* b+ r2 {) g; b) s$ J# I: s, a# [0 } h" m
2 u1 A- g8 j7 T0 v8 d; b5 G1 M4 N1 _基礎知識:
* ^9 J+ C- @+ K3 y9 _' @perl字符串處理命令:+ G: V; H! J1 E! ~0 l3 r' C
perl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:# C) K9 N C8 r1 S; N; Y; |
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已
5 j6 U+ l" }* I" v3 G" }+ B0 }9 @$ A2 t; _+ n; _" k
\ n 換行! j# F8 q$ R# {5 J4 Y1 j9 ]; W
\ r 回車0 S) C: O1 S5 C2 t4 q; z. N
\ t 製表符
9 v; ?+ G8 |3 ]5 d0 f\ b 退格( d e f7 I6 R) `$ x% v3 g* r
\ u 將下一個字符改為大寫
: c+ T/ m( \9 W0 s: B\ l 將下一個字符改為小寫
. l; d: N8 u) j" C3 K4 z$ {( `- R5 G\ \ 直接量反斜槓字符7 ?2 I4 d: M9 H& _0 D. n p
\ ' 用單引號( ' ')括起來的字符串中的直接量'6 } z4 V1 @0 j4 q2 |( }
\ " 用引號括起來的字符串中的直接量"
9 N/ x1 W9 j' m2 }2 i 除了換行字符\n外,找尋只有一個字符的字符串
5 ]2 ~3 e. ?6 ]+ g/ t# O
) R0 f, k s9 S7 f& p% f6 cx? 找尋0個或是1個x字符 4 T' Z/ R1 [% _ ^# L
: Z+ t9 c7 \/ Z5 V/ w, @& n
x* 找尋0個或是0個以上的x字符 " y- T2 E; e0 L5 g# _) Y4 t& o
0 U. K U% ^9 v' n: l3 v.* 找尋0個或是0個以上的任何字符 ; U1 l$ R. W5 J/ L P2 S
8 U+ X, \) F6 Z' _0 y5 k# ~0 P1 Z0 c
x+ 找尋0個或是1個以上的x字符 : p; D6 V" U% y- ?/ Q" f
' P0 N( L3 ~6 r2 P% [ X; _( A.+ 找尋1個或是1個以上的任何字符 " j4 ]3 |' Y+ Y0 ^9 L
6 q7 o3 }$ m: y( E
{m} 找尋剛好是m個個數指定的字符
! J E; y# k! W4 W4 H8 b' x* R% R! |' S
{m,n} 找尋在m個數個數以上,n個個數以下指定的字符 8 C9 N- X; N& E# h0 p4 G8 W
0 n/ U* K2 G' Q' b, o
{m,} 找尋m個個數以上指定的字符 % W, N+ B, [9 ?# s9 h
1 t; ], g: @ {% g: \〔〕 找尋符合〔〕內的字符 ) r$ }2 Q( t# m& g
! W0 }. _8 {. { v" Q+ b
〔^〕 找尋不符合〔〕內的字符
1 ~) }5 \ v: M. {8 ~2 s+ W- U) o# H% C/ p3 R
〔0-9〕 找尋符合0到9的任何一個字符 ; j. `6 B, c2 X5 i- F# F
1 z4 Q# z. e+ n# L+ h〔a-z〕 找尋符合a到z的任何一個字符
5 O: |& A6 ?' b" `8 [) k n I2 Q/ s* S Z. X
〔^0-9〕 找尋不符合0到9的任何一個字符
; {7 P: j$ m% R9 w4 ~, C
* V/ a& @: D* Q0 Z! o2 ~" B〔^a-z〕 找尋不符合a到z的任何一個字符
( Z* q* U: H. Q: n' O3 u
: R; p1 g$ z" X- Z# D( c^ 找尋字符開頭的字符 1 t6 q' u" X- m( ] W3 n$ i: R5 Z
/ v7 A. `* F& }/ E$ P3 z: j
$ 找尋字符結尾的字符
7 ^' L# b4 k. z9 V# T( J
5 h( x4 v& _5 z2 V1 u0 R" h; I\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣
) k w3 t, k( c5 W7 s+ z+ i& y) k+ c' T( h' F
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣
6 t# x5 R. R6 B: \% W: t3 |
; a _9 q9 A* T0 K' Z/ T\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣 ' z2 R5 V/ Q- c1 n( B
3 I! |2 `- `& W, m9 R
\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣 3 w4 d, G0 x. M
+ T1 L4 M7 c0 {$ i) W, Y$ n& a9 z\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 ' g! T( ?1 B- x4 `# @+ D
2 a7 L/ e( s' q5 _+ y: g5 K
\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
' _3 l" `8 T; h- B$ [- c4 `+ D# S* m4 J0 Z4 K2 J
\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣 ) W4 {( t1 P+ h, R
5 ^5 X: z8 ]5 m' N9 @
\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣
* S `/ _1 p- f: [% Y
6 {- O# q- o8 i\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣
" I7 ^! M) Z( e" \2 g6 l& Z
( v+ m+ [, w; V8 F! K3 x\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣 6 F) |$ `2 P3 o) s8 z
! p- ]" S d% G3 E9 n
\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣
# V6 [8 q9 u4 ~( g
6 g3 C5 A- j7 q3 z. w\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣 4 }1 X, [, u9 W
% G( ]0 o) v2 c& h# o! X
\b 找尋一個不以英文字母,數值為邊界的字符串
3 Q. h$ C2 w7 p. q6 H, ^0 R1 D: J9 Z( s+ Q
\B 找尋一個以英文字母,數值為邊界的字符串
7 ]7 z# V q. b8 T9 p& M5 G5 C: b8 K: I/ |
a|b|c 找到符合a字符或是b字符或是c字符的字符串 % R" C# Q( b3 p% F" _2 [
+ p$ D/ c" W1 n: }3 dabc 找到一個含有abc的字符串
3 {9 A7 A2 l9 H! I0 ~+ M N
& J) N- N( `1 Bpattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法
8 B X" @1 x- Z6 d# b! ~2 ]8 @9 q1 Y+ v' T% b ^7 ?7 y2 o
第一個()內所找到的字符串變成$1這個變量或是\1變量 " i" `* p7 x# ~# p1 s
. N: K# q- S7 h+ r/ a' r5 J. y 第二個()內所找到的字符串變成$2這個變量或是\2變量 : S7 U% e7 B3 W! i7 Z
/^perl/ 找到開頭是perl的字符串 ) p# t" t# f' f- z) h
6 y4 ~8 s' R; ^/ I+ }/perl$/ 找到結尾是perl的字符串 O( X% \! F$ V6 Z3 p3 c, M
7 `! C$ a0 p4 a9 Y1 @' R
/c|g|i/ 找到含有c或g或i的字符串
a7 z5 F% j/ J
7 T" A: D" R n6 b6 w8 z: D/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串 $ {8 N) `, Y0 F" Z( E* W
0 g3 Z9 [: w! N
/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串
t, \1 F" e0 H! p5 U( u8 @$ c( D, Q) G) e' i7 E; P
/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串
5 ^! C- w9 \$ G/ d% E, B8 N/ b
; z4 P5 M, |. v7 `" q2 D, ^/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
5 Z7 U% r9 E) w5 ` O& ^! h8 _; Z' E( u- y2 g0 W+ k4 B, ]6 s
/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/ 5 w' ~; F9 q a- R) y! _
( J8 v: a. q6 y/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/
; q3 @; e9 O H: }$ g) p/ x+ e% E* @& z, i5 R4 A5 Q3 s
/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串
W/ M) J `+ L3 h3 x
% [6 N# q' B7 _6 T" u/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串
& ?/ B3 K1 ~- v* W& T
( p, p6 R/ E/ S) l- I/〔cgi〕/ 找到符合有這三個字符任意一個的字符串
! E6 c6 f1 h2 y
1 e& A: f* G9 r. p+ l! o/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串
- f3 ^/ F* M; O! M3 T2 J% D
% f3 I* Q5 |0 s4 \& z; S* q/\d/ 找尋符合數值的字符串
/ O6 m* M5 _; J7 M" C% y$ u$ g+ r2 r, E/ t: ^
可以使用/\d+/來表示一個或是多個數值的字符串
7 U" a7 z) s) F; {. X3 v. D9 s6 `$ W3 S! j% X
/\D/ 找尋符合不是數值的字符串 3 m c3 A* Y7 L+ D1 e
8 c8 A5 w% y) U& ~# D( C! p, c6 k
可以使用/\D+/來表示一個或是更多個非數值的字符串 ( U) H- s: r+ d+ J$ @5 _( g: [. g' h/ E
, M, A; g4 i) ^7 a( o7 Y3 [/\w/ 找尋符合英文字母,數值的字符串
/ \. J1 S' @" B/ l% A1 K! K4 @- N3 o: j
可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串
! n8 ?: ^' E9 B6 T
% P9 y; E" A( k7 k/\W/ 找尋符合非英文字母,數值字符的字符串 : C [# u4 X' g6 e5 `
- m/ u* s' r$ S, v
可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串 $ _7 @* j2 ^5 v, [0 W
f! U1 c9 U9 w+ D3 A/\s/ 找尋符合空白的字符串
( F# }* L7 |, J. p U, n
* r: T7 p0 X+ J. _2 f+ `' } 可以使用/\s+/來表示一個或是更多個空白字符的字符串
% U7 ^+ i' f Y6 g; Z9 w* o4 z @- G4 X ~1 A% g
/\S/ 找尋符合不是空白的字符串 7 r0 |7 A% X/ ^$ Q6 D
+ E' T9 l5 ?( c* Y 可以使用/\S+/來表示一個或是更多不是空白的字符的字符串 ( _2 y: X3 p% H2 F T1 L9 |
8 z Z5 m2 k1 C
/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效
& g" j, i( S5 Y/ R* j% L
: I" z6 L+ h' g% c5 M/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫
7 K# S' V7 V7 m J6 j/ a$ F4 F) x: G+ a% L4 w, J3 i
[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|