聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼
+ B& y4 T3 k5 b2 S$ O. i5 \也不是太明白
# ?) s4 L. n4 F9 N4 kscritpt professor 2.94b,我們測試添加一個gofeed的feed:
9 T! K6 T5 }' z2 E9 U* }; S! m0 r E1 k4 A3 n1 w5 _7 q+ i
; Z: Q5 y$ n4 W; k1 q. r
基礎知識:
' r3 G: O+ f8 m4 E; T n$ }" v k9 c. Vperl字符串處理命令:% i, A* H7 K' j! `6 z8 s/ u" a( J4 p
perl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:- i1 h3 W! k2 L% T+ l+ K* k8 H
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已
& x) o" J) o0 r* Q8 q6 w Y6 o; v6 ]! Z! ]% G, }& L" _2 u
\ n 換行
' b& z: j' U7 J! a, U/ \\ r 回車
* O( l) Z- [! h9 Y\ t 製表符2 k# e- ~ x' v8 e9 L' K
\ b 退格# R a4 |6 v8 d/ P: \6 W! |
\ u 將下一個字符改為大寫$ s5 @3 B8 t- V, A) L, _
\ l 將下一個字符改為小寫+ t6 J. g3 o6 b, u- }+ n' t
\ \ 直接量反斜槓字符
, ~+ E5 N0 u3 Z: c" @. w' B\ ' 用單引號( ' ')括起來的字符串中的直接量' X4 a4 G3 o: \. Y8 f# f
\ " 用引號括起來的字符串中的直接量"5 g- R/ F/ P; E8 [+ _& b
除了換行字符\n外,找尋只有一個字符的字符串
& A9 ]" s: q( i# r+ x
5 R1 `0 G. a+ `5 y) a! P, `% Rx? 找尋0個或是1個x字符
$ \ h N5 h! T* u
, Q. |* U" o* `5 j, d5 q1 M6 ?x* 找尋0個或是0個以上的x字符 6 O* l& u7 B7 A7 q: \6 V/ u% Z
. o9 D! k5 j9 g
.* 找尋0個或是0個以上的任何字符
% D9 s7 H5 ]* y1 h. P
: K& q( A( a9 r, R7 C5 r2 h: Y9 W- px+ 找尋0個或是1個以上的x字符
% o+ B# A& G6 g! O$ ^4 N: Y" c5 k0 n3 e" D
.+ 找尋1個或是1個以上的任何字符 5 w% A& k q e0 m. z5 @
8 T3 H! \& r- s0 c, V{m} 找尋剛好是m個個數指定的字符 9 V" \6 P+ t/ ?1 {1 q! V
' @% s) Q6 T0 L# V# Z1 h
{m,n} 找尋在m個數個數以上,n個個數以下指定的字符
" t7 p$ ]2 t. z) P9 s: j9 z! ~* m
. x* S* D9 |1 O5 P{m,} 找尋m個個數以上指定的字符 ; Y d( l4 _9 Z* _3 [' h4 x2 f* s H
( J8 g1 P& M! o3 \# n! d$ b
〔〕 找尋符合〔〕內的字符 / e) A( @* Q# l/ Z. J. x! E
3 E: N0 R& Q% G1 n' g, U, h; @: k( F
〔^〕 找尋不符合〔〕內的字符
5 ?6 D6 s1 z! ?$ Q! {7 q
: X4 G: ]0 M7 S/ ?& a" }; m〔0-9〕 找尋符合0到9的任何一個字符
5 k6 z9 o# {. ]' }! j. P8 z p. q) d4 s9 H) J1 ^5 w
〔a-z〕 找尋符合a到z的任何一個字符 3 j9 V' q( t% [' W5 C
; B: ?+ o: i# y" j5 P1 z8 ~〔^0-9〕 找尋不符合0到9的任何一個字符
8 r9 x: q& @; Y5 z' S5 B7 z1 e
+ W+ D) D. V9 d1 X& T) l! ^5 k3 O〔^a-z〕 找尋不符合a到z的任何一個字符 * E$ o5 G+ } ?- n( @
8 k& M- T1 x7 R$ v) x" i^ 找尋字符開頭的字符
% ~) n6 \1 w0 E: K0 \- Q. s$ B3 I- M( M1 i- ]/ j, D
$ 找尋字符結尾的字符 & D4 }, g) V9 q& \1 U1 u
R/ J+ ^; d& R3 t& V
\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣 + u' m N9 i* |* x# v6 f) w# g! H1 A$ r/ F7 C
# \8 Z- @) d- t- c6 B" r
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣 - c* j2 A6 C4 E1 S
- Y( w$ m! U/ _8 [% ]
\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣
) c5 t/ a0 u, V8 H; ^ W" b+ y7 \- Q" {2 I% R2 z. {
\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣
! G$ Y' t$ R5 e( J& n8 Y( H& ] f
5 S& Q% p+ R2 e% i9 Z, l\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 ) @2 Z* s' y: a a* [. z
z0 G3 ^! e/ O& C, D\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
, @/ m( ^) u f& n+ B0 U% Q
, J. G" D- e" E9 l\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣
( y$ m" p9 R. T$ K+ t0 b0 w$ y4 B( x$ \
\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣 % ^ v- h) d* [ t7 V4 L
5 y+ b2 E2 t, [' n+ X: n7 i. ]% o8 W
\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣 8 H0 T% k# @" T
- |0 ~. R- V5 M
\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣 1 `+ h# E# E/ ~* J/ P
0 ^( ]5 b- P* @1 O+ ^
\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣
8 a9 y1 |& P0 ^, ^1 s3 {! S) z
$ m& n N M1 U, ]0 H# c" \ \\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣
" _" z9 b/ g+ d
4 K& r) A, a/ W+ M\b 找尋一個不以英文字母,數值為邊界的字符串 5 s V+ F& x8 Q
7 X. } k4 s9 T% v& n\B 找尋一個以英文字母,數值為邊界的字符串 ?" t% A1 b# `/ \9 B4 U
: l4 V5 K; e# F7 Fa|b|c 找到符合a字符或是b字符或是c字符的字符串 8 s" [% O% r7 `9 X, o
9 p" J4 x$ G6 n
abc 找到一個含有abc的字符串
$ s1 a* b$ |$ p( q& o9 ?" u: U
pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法 2 a7 X4 B" C b7 }# }
# M4 L& |! o; _
第一個()內所找到的字符串變成$1這個變量或是\1變量 ( @1 ]. c) L9 K
* M# |) S+ [" a) J" F$ B
第二個()內所找到的字符串變成$2這個變量或是\2變量
V5 j0 R% V- s. T( j. h7 A8 Q1 o9 A1 C/^perl/ 找到開頭是perl的字符串 ' N c) J& d H4 `
U9 a8 C' A4 R" y/perl$/ 找到結尾是perl的字符串 5 \9 w, x* [: s, g s Y4 G
" N; V7 h1 \$ t& `
/c|g|i/ 找到含有c或g或i的字符串 8 N, X: D& M# k3 ?
- s0 d) Z( A: f. m3 K; H9 \6 w) C/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串 . `7 y3 V) b7 ]! ~
8 _6 E7 E0 P( I5 Z4 r' L/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串
2 D; J6 T4 h, l( C) B
% w1 l7 a( L' X# b/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串 $ S3 z% O& ?4 g& y4 M' O3 g
7 S/ z6 G+ Q( {+ I7 I
/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
1 G" K" ?; J T4 I7 u
" t8 \1 X. i8 v% D/ } u/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/
3 u/ p1 o# e, r5 N
; @) q" v( R: v( B0 a; W$ ]3 h$ t k/ b& ~/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/ $ ]3 k6 J% D9 ?) s- T
. E5 D2 U9 S' y5 h9 I/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串 7 f0 ?2 z9 E/ K5 T/ s
- u3 h9 n2 Q. A) P* K& o8 J
/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串 ' M3 }- m+ o: Z$ E8 F* n3 E
3 g. E2 M% a9 Z8 _5 v9 L4 n3 V$ G. J, U7 S
/〔cgi〕/ 找到符合有這三個字符任意一個的字符串 * J* E5 [ U$ F. F. f, Q E
" z8 K6 E" t O5 o" ~* b
/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串 9 Y4 [3 x0 {/ o
: N4 b8 m; w% }0 V6 X& L
/\d/ 找尋符合數值的字符串
& x% ~/ a: i# e
2 a. [1 Z) j2 I7 x F+ T 可以使用/\d+/來表示一個或是多個數值的字符串
1 i3 z S1 Q1 U; b. s- \
4 ?/ n2 B' j6 `4 t9 K. ]/\D/ 找尋符合不是數值的字符串
# X6 \7 n5 a2 i+ d
) E8 F2 U& M0 c0 j) L- A 可以使用/\D+/來表示一個或是更多個非數值的字符串
! V# W: C! c+ U, G( ]) ?5 w3 d' ~. L- J: e0 m, r9 i X/ t' `
/\w/ 找尋符合英文字母,數值的字符串 & E- F& r0 Z' p @/ C
" h9 u. o2 B' I# R" r- @
可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串 ) n( \9 @, g) Z$ G& d
/ ~! M' D; B4 s# y/ i3 s4 [
/\W/ 找尋符合非英文字母,數值字符的字符串 5 U$ Z9 l5 y, ^, ~: z f
2 |$ M8 q7 U! m; E6 q- S 可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串
: ^9 A# D. _0 H2 r ~, X; {
* y+ W" P: p: I5 }! x! R7 e3 r- }/\s/ 找尋符合空白的字符串 1 q) ~6 _& b, @: [2 r
) f, {: O' A6 P; a 可以使用/\s+/來表示一個或是更多個空白字符的字符串 $ r* c; }; x' T% T4 c \4 r
% c+ R5 R/ \7 X/\S/ 找尋符合不是空白的字符串
7 l$ W4 a8 y& n! d( t0 M' l7 O+ {2 x% H* _% F2 _& Y
可以使用/\S+/來表示一個或是更多不是空白的字符的字符串
; z- ]( |, Q) Z4 c/ W* ?) u0 m9 k B3 q' w7 x0 v+ Y- }( m
/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效
B6 z8 n0 l& K& A; j4 V0 j5 F2 p" r% N8 f9 X) d# t( Q
/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫" v8 }+ V3 ]: K& F. Y
3 ^0 a0 q8 s" T3 [[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|