聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼# u+ x& U6 d' o Y/ i: ~: T `% g1 N
也不是太明白( a/ K6 }% o9 F9 U% M" L* x
scritpt professor 2.94b,我們測試添加一個gofeed的feed:5 A4 ?, R; k2 P4 k! z4 M
9 T- X( B" t# l2 }
e$ w0 o% ?; @7 t% x7 L
基礎知識:+ j/ W/ l5 n7 m7 Y' p% T8 g
perl字符串處理命令:
J& ^6 Q& h) O2 X& V$ v% W8 Gperl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:) \+ @1 u8 m5 k
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已6 ], |. ~2 G! c G, H
% R" G3 j5 q2 `
\ n 換行
4 \2 T! I& P0 O3 E$ [\ r 回車
: X, s1 \: T6 X! E9 {3 l& b\ t 製表符7 U5 ` W( ]* E2 k# Q Z: e9 u
\ b 退格
# N7 p/ H' S, d1 M3 l) u/ s\ u 將下一個字符改為大寫( g) t% B6 J7 G$ w4 p
\ l 將下一個字符改為小寫
F) ^ U. i) Y6 I. a9 M" D\ \ 直接量反斜槓字符8 B6 R+ n! } L# y% e* h1 o
\ ' 用單引號( ' ')括起來的字符串中的直接量'1 v$ I f s Q( u
\ " 用引號括起來的字符串中的直接量"$ l! c6 D% E+ _' h( S) B+ m
除了換行字符\n外,找尋只有一個字符的字符串
# R4 L' N( U: Z% o, _
) b! K- i7 n: V# [8 Xx? 找尋0個或是1個x字符 4 f; j4 k9 ?, {) T& R6 h
3 {- S0 h& D" n9 x: }. P+ U" V
x* 找尋0個或是0個以上的x字符
9 x" p9 W s8 K7 A
% c( R# V- X. O3 v& G.* 找尋0個或是0個以上的任何字符
' v4 m* P: y) H% U
8 ]# [+ h) V, `6 U5 [9 @x+ 找尋0個或是1個以上的x字符 ) M$ y5 K# l& E, ]% N- f
4 L0 B" Q2 {. A& b0 F Y.+ 找尋1個或是1個以上的任何字符 ! z" B( q9 x; m+ a) q
# a3 r+ \$ Y6 p7 h* _' m{m} 找尋剛好是m個個數指定的字符
' R+ p( G9 G/ @1 A* r5 Y0 |3 t, ]1 m0 \% O6 Q* ]
{m,n} 找尋在m個數個數以上,n個個數以下指定的字符 3 l: K4 T R2 o+ C' J! w E d
6 Z# p2 l7 |2 A
{m,} 找尋m個個數以上指定的字符
2 f0 ^. W9 Q: A; f' z9 a/ U; p" }5 {
〔〕 找尋符合〔〕內的字符
: [8 |+ L8 |9 B: N# G4 q3 l' a; ?! |' g$ c/ z) e
〔^〕 找尋不符合〔〕內的字符
& h& Z4 n+ t2 J ?# d/ h9 G J5 c7 m$ A+ [5 s! v0 S
〔0-9〕 找尋符合0到9的任何一個字符
0 m/ i: W& l) X d
$ R3 B# l4 i& Z- }0 J% R& U. d9 w〔a-z〕 找尋符合a到z的任何一個字符
, D# g; p6 m; D2 t% | x6 q0 O/ F0 x6 b' ~$ d0 D
〔^0-9〕 找尋不符合0到9的任何一個字符 . [" }% ?! K0 f4 V2 j
`; a) }2 \5 j7 w0 Z. S
〔^a-z〕 找尋不符合a到z的任何一個字符 , h# ^- M0 ~% S, n! m
6 u: ]9 Y g* `* W1 y% g
^ 找尋字符開頭的字符 Z4 W! G. C# s# P% W
& e, j/ ~- K: s4 q2 b
$ 找尋字符結尾的字符 ; S2 D/ j' Z) X6 o; v
. ~2 H. {* r% I0 E' h5 q4 s2 G) M5 b\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣
( a9 x$ T5 \( P" \5 g+ ^) A& y8 j8 s4 H% A
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣
B3 e) b5 ~" v2 P6 T1 J- H& `( p2 r0 D+ R$ S' y
\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣 3 ~2 B& C" X ?) O
4 E- V( i4 C. o+ u
\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣
) H! Z+ q) L0 l: e+ t' B, O% S+ M: R3 y
\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 ; G; j9 }) V) r- K- C+ S
9 p4 l1 s. S' L" j! C5 {\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
+ _- {- j0 }; h7 g. V& I4 u* U- w$ L! d8 J3 A6 f M8 g
\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣 $ ~$ H& P% ]; S' D9 y/ L. {' T
4 x: @. \4 G7 G
\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣
" }8 T) c# x7 `% l/ t' W! X! |+ c( b. C! N( ^
\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣 ! L* d5 k- C2 o) G: o7 Z; J
+ A7 Y: s& [, u' m+ h
\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣 5 r7 H! A$ Y4 R7 N' s( A
$ L; S' k# x$ H' G\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣 `% F4 c! Z7 ?7 K1 F- d
* C1 u2 D' X1 B" [/ T
\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣
# F. i9 E6 s1 l* A; Q. V
; e" b& j8 ^7 J6 G\b 找尋一個不以英文字母,數值為邊界的字符串
' c ]* s. Y1 W6 Z
s# H) ?- J8 j4 e4 r/ s% i" w\B 找尋一個以英文字母,數值為邊界的字符串 $ E9 Z- M. b1 U" z4 ^7 m$ y/ ^5 F
+ p3 a& S9 \+ ?" j( C9 k" Oa|b|c 找到符合a字符或是b字符或是c字符的字符串 . h% q7 c) i+ G$ B
+ s! q: m/ Q* _$ m
abc 找到一個含有abc的字符串
/ n; q5 D; S! S
2 }3 C3 p' W: r/ }2 {pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法 ) `( {: H! b! `; s5 k6 L
( W5 ~3 c* B/ _2 m7 N. y 第一個()內所找到的字符串變成$1這個變量或是\1變量 % b" ?2 O* k( ], V9 Y& m. |
( x/ q$ X2 @% v9 { R) P 第二個()內所找到的字符串變成$2這個變量或是\2變量 1 X( U9 m4 B6 E0 N
/^perl/ 找到開頭是perl的字符串
9 [! R7 J: @% L @( S2 q; |6 |, E0 w9 o( c0 h6 ~
/perl$/ 找到結尾是perl的字符串 ; y$ U' s4 B* T# E/ L
- k0 r3 R% S/ x( J" }/c|g|i/ 找到含有c或g或i的字符串
5 S# P+ p1 b& @2 j& \, j$ ]7 W s2 a! n2 F( r
/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串
- } f/ L6 Y8 V0 D! g3 q* [- y5 f [0 G# \% E( w
/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串 - e7 x8 I4 G5 f4 k
0 R/ K6 D/ n" w! ?" B9 B3 E; v6 [
/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串
$ \& c& D" z! K3 ^( z
" V+ `, l# q$ A- Y9 e1 t/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
& c* P# O- ?/ |* _, J/ o, V8 |- D
/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/ " ^8 @6 s" V6 O
. E, x9 A l1 o. \# I& c
/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/
% ~5 S) U3 w+ ]2 d, i
3 c+ I' }0 W5 k! @3 I" g' r/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串 ! K$ X& N2 h2 Q5 F. ?3 K7 B
+ |9 s1 Z( y+ E" w
/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串 + M% Q' ~3 G/ L$ l% f0 f; Q A; x* G
$ m! t, S# F( Z$ |8 N3 @. y
/〔cgi〕/ 找到符合有這三個字符任意一個的字符串
6 }8 j# k+ F) P3 W, T* x
* j2 E' ]6 L: i* C# i/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串
' j& r/ v! @+ B( N$ h0 m7 A8 a2 x/ Q! a& w- R/ f1 [$ }
/\d/ 找尋符合數值的字符串 - K: c5 s2 Q) E% ` Q& _9 Z# W% ^
& N; d9 k4 {! ]( f9 T6 d# ?& \, i 可以使用/\d+/來表示一個或是多個數值的字符串 5 l8 P2 c7 h) K$ w0 H
! N( D& R( i5 H5 Z4 z1 _: k/\D/ 找尋符合不是數值的字符串 9 N8 Q5 _. B J5 K$ N7 R; s6 m
8 }& W* l% w3 }- L6 g4 t* x3 {2 h 可以使用/\D+/來表示一個或是更多個非數值的字符串
* ]8 y8 p4 _; p/ z* j4 G" k+ w1 z' u; ~1 j) z7 U$ I" y: ]" _
/\w/ 找尋符合英文字母,數值的字符串 * x& _: B+ u. Z$ j: t
' G S# \& ^5 Z) m
可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串 / ^9 N1 Q& U, s
! H: v' f8 K$ V, Q6 Y0 e/\W/ 找尋符合非英文字母,數值字符的字符串
, b, ~/ K/ y; o; m! b" v& L# a# E t; S1 I9 n* {
可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串
! S: c2 Q3 W# V9 e, e
* E' s" h) @5 v6 M$ H2 ?: i6 q* {/\s/ 找尋符合空白的字符串 * K) ~: Y% \1 B7 Z8 Q
' o& Q& Y7 q* F0 t% b& ` 可以使用/\s+/來表示一個或是更多個空白字符的字符串 " U! Q6 N1 n+ Y. a+ Z4 i l( G3 P
- V1 A8 T2 f: T+ o* y2 ~9 @
/\S/ 找尋符合不是空白的字符串 ) M2 {$ y v8 p
8 A- C; H' Q( x: Y! @
可以使用/\S+/來表示一個或是更多不是空白的字符的字符串
2 R* K Q3 L; }' C. J6 G: L, F7 j0 Z" ^9 p8 c$ J. c6 u
/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效
- A+ w1 m' m( w- y0 U/ k- p1 I# u) S" X
/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫- _& T* P5 M4 x: v& _7 p: l9 ]
- T! Q7 M6 R9 Z- Z[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|