聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼0 B5 ?( D! U0 P2 w
也不是太明白
% `- m$ i9 ^3 }/ A# g# Zscritpt professor 2.94b,我們測試添加一個gofeed的feed:( U$ Y: f* ?' R3 G
/ h& F. ~+ C) x- B$ a# \; W, s& L
基礎知識:
. v ?2 D2 I O" W3 gperl字符串處理命令:
i( R: y4 J! w$ Z, j% ~4 \: M, Hperl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:7 k/ a4 }% M9 Y$ W
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已
0 }: @5 S% p* V' |: Z+ X4 T! e# Q+ P5 w/ u
\ n 換行
! N% ?( `5 S) \% b2 S. {* T\ r 回車& _! B) v- k; J) T, ?5 h
\ t 製表符
$ k. }/ G/ X4 p, x: n\ b 退格2 f+ S D7 t% p e0 {( b
\ u 將下一個字符改為大寫
+ H2 f [$ `: k% l W7 w7 i! l\ l 將下一個字符改為小寫
; g- e3 Q4 C5 m\ \ 直接量反斜槓字符; h1 u) y5 p5 a. Y
\ ' 用單引號( ' ')括起來的字符串中的直接量'
@0 b# G" i4 @ x' @9 {; J" k\ " 用引號括起來的字符串中的直接量"
8 v- G6 Q3 E$ J( T 除了換行字符\n外,找尋只有一個字符的字符串 8 r! i e) f7 K% {4 c
( _& B# }6 K7 _; i; H* x& Bx? 找尋0個或是1個x字符
% A, y5 ~7 }$ v; j; n! |0 G
. O9 ?, \" o/ U5 T/ Z* ?5 Rx* 找尋0個或是0個以上的x字符 ! I2 c3 n& f" u
0 c8 k/ S4 F5 ^! h. B$ M, j.* 找尋0個或是0個以上的任何字符
+ v& T, n: \( Y6 B, x5 o* ]: H' W8 t6 ?+ o
x+ 找尋0個或是1個以上的x字符
. e' S" t1 t% z1 w+ R% c4 \1 C5 l5 y
& h/ l1 i, Z9 h8 z4 x# f.+ 找尋1個或是1個以上的任何字符
& C! y9 i; r. {) J
, j7 o% ~! n/ ^) n{m} 找尋剛好是m個個數指定的字符 ( |* {8 z V+ o8 }
; o, A: f7 f {7 p! ^( I' Q{m,n} 找尋在m個數個數以上,n個個數以下指定的字符
9 R5 R" r: E$ t& {$ A4 J% o& b" w$ u. f! Q
{m,} 找尋m個個數以上指定的字符 * F5 J( o3 B/ ?% ]! L0 r2 ^
" C Y6 } @* l# W〔〕 找尋符合〔〕內的字符 ( p$ [& o' T: U7 m3 s U
% ^4 Z& s: ^8 `/ P! m0 P〔^〕 找尋不符合〔〕內的字符
6 p1 C8 h& x, r
' ^9 d7 ]! M( d7 H〔0-9〕 找尋符合0到9的任何一個字符 ' n$ N% r0 R& i6 e7 ]
1 u7 v1 v; B6 e) L〔a-z〕 找尋符合a到z的任何一個字符
' f/ _* D# D1 C; c. u8 b/ l; O
. _8 t& i( e0 z. g〔^0-9〕 找尋不符合0到9的任何一個字符 & e: m3 M* S# {4 Y, g
/ z( _/ i( u7 q' N6 T* U: a6 Z5 D% d
〔^a-z〕 找尋不符合a到z的任何一個字符
& g4 h; N7 h( |+ B
+ @8 ^8 P+ H' r^ 找尋字符開頭的字符 6 B2 |* V) R @, ]% ?; z0 u
' C0 e4 v, g! W# I, h# ?' c
$ 找尋字符結尾的字符 ! S9 k. X! _4 u: E, k/ m
% v5 ^( S# x. w; s6 V: D% t
\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣 3 M; h) k! h) u, Y6 E$ R2 W
+ g& O* A! ^: V8 \0 A\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣 1 x5 d( X$ w2 d( @
7 q( L4 M3 i/ I" f% d! n/ {# r# m
\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣
/ y8 o0 [) N& j: O0 b" _
) D7 Z9 j5 |6 N6 N* l( i W\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣 ( r' a: u( P! [: W5 D8 B
; \( Q B- B* A* y
\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 + O- C) }6 p& ]* |& a
% m" U, [: A b3 Q5 J' f
\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
) F o0 T/ N! [9 s
9 d* z! L4 m- W K( P& _\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣 , |, c- K5 @: \( M) j
" j) ^7 d" e: Q! ]1 _, l\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣
0 U& ?. M0 j( ]9 X7 i ]# g0 k% I* p7 m
\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣 & s& c( ^3 `4 Y2 p% l! M, D
4 l. {" l/ P1 [! q4 s8 x" f\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣
8 ?% _; S( G" i) K% ]- F5 B- V% Z2 Y' O7 `5 S: l1 J! v3 G
\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣
: n% U2 r8 Z1 e; _$ y2 L
8 ^' i; a2 F4 m3 _' ]\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣 , D: f) I8 K% c4 S; ^5 C& b- J
: |+ I* L6 K0 V
\b 找尋一個不以英文字母,數值為邊界的字符串 9 l- I8 j# s4 K9 M: c+ q5 m
0 l3 h) q& @8 _
\B 找尋一個以英文字母,數值為邊界的字符串 7 C8 {0 x% l3 X
1 m: l; m5 e B/ i% k2 b4 x+ Wa|b|c 找到符合a字符或是b字符或是c字符的字符串 1 T) N" a2 ]5 i
' k6 \5 j- f; `) Tabc 找到一個含有abc的字符串 8 y. X5 u7 q5 y7 W' [# b1 q' T0 U$ J
' Q( M3 Z3 z/ ]. P* Epattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法 & K" y" z% J* |; m
4 {8 I8 q: ?, d7 Z 第一個()內所找到的字符串變成$1這個變量或是\1變量 ; A( [! ^. q5 z; T% R# l* r3 G
3 [( D& A. M; `' `; G; f
第二個()內所找到的字符串變成$2這個變量或是\2變量 & i/ e8 r5 W8 d) C' t7 F5 {/ R
/^perl/ 找到開頭是perl的字符串
6 C4 u7 Z, W T5 ]/ J5 S( d" G! m" ~4 K4 g9 d% ~
/perl$/ 找到結尾是perl的字符串
: t; r9 \3 l l3 t! w2 {/ A- c# I! G: {, }( G! b
/c|g|i/ 找到含有c或g或i的字符串 ( N/ @# L n) g0 [+ L. G, f; u
7 U% r; Y, b+ F6 f7 o2 v. K, o/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串
) d0 b' \7 i1 o! z4 V; J# ~
# r4 _3 v; s: \7 _1 k @/ |/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串 ) Q7 J* x! |. D0 F! f' v
* I4 Q3 p! b+ P- E- [/ d$ Z/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串
2 Y) Z) P" U# ?- r7 y, k8 s7 s |
0 O- B! P* W, c S+ d; n- [. j. a/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
: I2 G: S, v: _
4 S- H6 J# ]6 A( r1 {8 g/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/
# }& O8 \8 g+ c4 s6 |+ d. k" ?1 c6 c( V. n5 ^& {
/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/ 9 j' L2 {7 d2 ]% G& b: a
& h# R. r! h7 v, |' I8 R4 I8 c/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串
" \3 n& ?1 n4 B5 x. S3 }) }* Q0 j f
/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串 9 s s/ _0 z. d
* @# `, z7 u8 n2 c F; Y( M/ ?7 f
/〔cgi〕/ 找到符合有這三個字符任意一個的字符串
- d$ f/ D" I0 O3 N+ \5 B2 c) b% X9 {7 g1 P0 ]4 W O& _; H: T) n8 j
/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串 1 e& h; [+ f8 @ F0 r+ z
- h$ g. s+ r* F+ \0 r- k
/\d/ 找尋符合數值的字符串
8 z- u4 P5 ]! C8 Y7 M3 Z7 k
) w6 G/ L3 x* L% Y3 z5 v0 S" V 可以使用/\d+/來表示一個或是多個數值的字符串
J A9 W, E9 M( X7 |$ x% a. N- Y* A1 \8 @8 ~3 y$ x. ^
/\D/ 找尋符合不是數值的字符串
) p, N' T! T" t# h! g5 E0 G6 t+ w8 b! s
可以使用/\D+/來表示一個或是更多個非數值的字符串
" [. d' p1 S- J9 Z4 [' C' W0 t1 f( _, O* ` s
/\w/ 找尋符合英文字母,數值的字符串
- j, w; t$ V8 R+ a0 s7 O, a
7 V: \6 P; e7 \0 b9 y9 i* G 可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串
- D$ `. U$ ?; Z% l! P k& Z5 C7 E: W, p+ N
/\W/ 找尋符合非英文字母,數值字符的字符串 & u) R& \9 O, X- `
5 c* G ?: D( W6 H 可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串 ; i6 U9 ^! Q! |& x+ P/ D3 \
9 ~# P j) p/ n' x' S8 U
/\s/ 找尋符合空白的字符串
* \1 |5 w8 t* ?1 H! V, a; A
" y/ Q0 T5 Z( e9 E0 f3 N3 j 可以使用/\s+/來表示一個或是更多個空白字符的字符串 , o+ X) [+ j+ a7 E$ M! B
! [6 ~$ ^3 G2 Z; }' a
/\S/ 找尋符合不是空白的字符串
% }3 X7 O0 S9 ?; [3 P
# `+ D% N! @$ }( N9 w1 l3 f 可以使用/\S+/來表示一個或是更多不是空白的字符的字符串 * N! s2 \7 @$ g. g& t
/ b* n) u8 j& \& Q. x/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效 $ {/ s9 x( T5 V8 t7 y2 m, U
# [1 i0 ]+ l% |( K* D/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫
8 v( E5 ?& q4 [% K+ G& a3 g; ]+ o5 c& ]0 |$ u4 C! d9 p8 X) i; y, {+ b, R
[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|