聲明:這些都是自己摸索的,有些地方不是很完善哦,沒有看全代碼) y/ F2 L8 B, C3 O9 g5 q5 T' x
也不是太明白) A7 }0 M! C) Z/ N3 S9 X
scritpt professor 2.94b,我們測試添加一個gofeed的feed:2 V: B- p* Q4 D7 r9 V: n: z
' A; L/ j8 @8 l: `; R1 w: u0 N6 _' X6 e& _% C0 B9 U
基礎知識:' h; j1 `" M2 E6 t6 E$ G
perl字符串處理命令:) `" e, t9 ~4 C2 ?, e" h
perl字符串的處理是所有腳本語言中最強大的,vc、vb、delphi就更不能比了,但是略微怪異了一點:; p. ]; C" P6 \+ t4 P# [9 D' F
大家可以看看如下命令:(另外注意~之類字符的含義)紅色標注的是重點。本文只涉及到了1-2個命令而已7 S" t) R$ D( e
9 c" N& I- T* j3 S0 c
\ n 換行, V# P' H' ^8 x$ }
\ r 回車
6 `8 R: I- {/ Q9 X\ t 製表符
3 ]# b3 i5 m/ v1 M\ b 退格2 q4 p G. O& s8 g& l$ {
\ u 將下一個字符改為大寫
/ Y# r( ~$ J6 m\ l 將下一個字符改為小寫
- g1 Q; f: f1 F: n9 j$ O- ^\ \ 直接量反斜槓字符
' M$ r. s l' h% I\ ' 用單引號( ' ')括起來的字符串中的直接量'
2 g0 v0 g% T2 L6 f5 F( [. v\ " 用引號括起來的字符串中的直接量"
' v5 _. U: L7 ^. o* n! ? 除了換行字符\n外,找尋只有一個字符的字符串
* A$ k' p5 n$ n0 z3 r4 T( L8 j$ l$ B; p
x? 找尋0個或是1個x字符
4 V0 |- k3 h5 h* g# x/ P3 p! W. r/ i* D$ c1 K3 N
x* 找尋0個或是0個以上的x字符 4 g3 r! U7 J5 r, i& y
* { T v$ F9 M! s& w& ~7 @2 m" ?+ Z8 N
.* 找尋0個或是0個以上的任何字符
* `2 I. B- j% [: k! @* v
R- ^3 ~8 t1 ] s v- |# K, G( tx+ 找尋0個或是1個以上的x字符 * i, ]' m! b+ i" y$ {' _3 X' I# P
( K! L( @) Z# z' y3 J
.+ 找尋1個或是1個以上的任何字符
0 b3 H# S& I7 [6 ~+ X C0 t& ~2 T! S, X
{m} 找尋剛好是m個個數指定的字符
! z; _' H; d% ]: Z% K2 g6 p5 n9 J0 Y2 o" J' r. s( z
{m,n} 找尋在m個數個數以上,n個個數以下指定的字符 , I9 M" w7 r1 e* [* D8 q
) z8 ]3 ^3 L% D: g
{m,} 找尋m個個數以上指定的字符
. b# M% m( p4 F! y0 K# Y3 {; ~. B2 _# I- Y
〔〕 找尋符合〔〕內的字符 % y9 ]' t: D3 V* o+ F' U
~ P' W" h/ F〔^〕 找尋不符合〔〕內的字符 2 u! F+ e, p; x2 z0 Q/ E
6 `+ ]9 f; M$ u! C, j& I! g2 Q〔0-9〕 找尋符合0到9的任何一個字符 6 v0 @4 o* y: H) {! i
, G( O' ]& J: a/ J, U, ?6 \〔a-z〕 找尋符合a到z的任何一個字符 9 j' @; R5 s0 M! k' g" J7 F
" Y, ^6 @/ M$ U q6 Y
〔^0-9〕 找尋不符合0到9的任何一個字符 # }& s. D/ s; t+ L d4 L7 c3 S; @
# a+ O) B z6 g3 i& x8 j, \* E〔^a-z〕 找尋不符合a到z的任何一個字符
- Q4 V( M0 ~1 e& `& R! L- ~, c) G- I n/ o: [
^ 找尋字符開頭的字符
8 n# s. q& ^+ C3 j' l; U% C$ w( k+ a' J8 F& C
$ 找尋字符結尾的字符 - Q# C a9 F, E. }. Z+ I: i
9 j: j8 ~( l3 V+ b( R$ x\d 找尋一個digit(數字)的字符,和〔0-9〕語法一樣 , a9 h5 h# s; Y, W7 D
4 [# ~6 o. f8 G
\d+ 找尋一個digit(數字)以上的字符串,和〔0-9〕+語法一樣
$ E1 Y5 ]( k0 D$ M7 w2 a
" ~+ ~: ^3 X! M- m0 S0 m\D 找尋一個non-digit(非數字)的字符,和〔^0-9〕語法一樣
9 p7 z. x& l( C! ]% X
7 q/ \- s# I R3 ^0 z( \8 U\D+ 找尋一個non-digit(非數字)以上的字符,和〔^0-9〕+語法一樣 " T+ D1 s0 Z: e9 c5 N
" A. h) l( {& R
\w 找尋一個英文字母或是數值的字符,和〔a-zA-Z0-9〕語法一樣 1 f1 B/ H& ?1 {! `0 i" p
" V. @% B0 I5 ~
\w+ 找尋一個以上英文字母或是數值的字符,和〔a-zA-Z0-9〕+語法一樣
* J; |8 d' y0 u8 U5 y6 l
' \9 _! ] _3 ]1 w0 P\W 找尋一個非英文字母,數值的字符,和〔^a-zA-Z0-9〕語法一樣
- Q$ H4 X4 K1 b s) ~: V) o$ g
1 P% ^, W7 T T. C6 V\W+ 找尋一個以上非英文字母,數值的字符,和〔^a-zA-Z0-9〕+語法一樣
! U: |2 t2 G# B& y- Q( E( R( C: G( @4 y( Q) Z
\s 找尋一個空白的字符,和〔\n\t\r\f〕一樣
( p# m# @/ k0 x; |
: P( O3 @7 b- [; l\s+ 找尋一個以上空白的字符,和〔\n\t\r\f〕+一樣
$ a: Z/ q7 L: _& _0 x1 A
' H) x) G( r% c3 T' ]" s7 L\S 找尋一個非空白的字符,和〔^\n\t\r\f〕一樣 . Q$ b5 D8 h+ @- p! H
) K! u7 N1 P' s' t# D- V\S+ 找尋一個以上非空白的字符,和〔^\n\t\r\f〕+一樣
) ]) F+ W& k! T' G# E: I/ a! s' @" q9 o2 H" Z6 l
\b 找尋一個不以英文字母,數值為邊界的字符串 . O) [. r5 z( W2 z8 C
% z; j, L- P4 S8 [+ q
\B 找尋一個以英文字母,數值為邊界的字符串
/ p8 s5 V" h( b* B( b" | |1 j5 a0 ^$ q0 a
a|b|c 找到符合a字符或是b字符或是c字符的字符串 1 O1 A1 v8 ?0 A; D
* `* A' Z @0 u& ^+ E: U' V
abc 找到一個含有abc的字符串 ) W* g. K4 B7 w
) J4 p+ W- ^* `- ~" l! S) G: g
pattern) ()這個符號是會記憶所找尋到的字符,是一個很實用的語法 ) M& G& |$ q/ k
' s- H/ e" |0 B% B' t% R
第一個()內所找到的字符串變成$1這個變量或是\1變量 9 x% i% [7 {2 ], r M: x1 y- ~
# B+ k6 ^6 E+ y8 ?
第二個()內所找到的字符串變成$2這個變量或是\2變量 - N8 ~% k/ u% m5 }9 C1 U/ K4 h
/^perl/ 找到開頭是perl的字符串
0 y4 v4 a- _1 q3 M0 |; L
6 F9 I, C' ^8 j" K/ f& w/perl$/ 找到結尾是perl的字符串
6 k" O" E+ p2 B; _0 [" x
4 ?3 A3 }1 o! f; Y) i/c|g|i/ 找到含有c或g或i的字符串
1 m$ { K7 W) c
' j! p0 y: V( `/cg{2,4}i/ 找到c後面跟著2個到4個g,再跟著i的字符串
" D& g; @* E f! u6 l: O
: {' ]( F: W. {. E, M/cg{2,}i/ 找到c後面跟著2個以上g,再跟著i的字符串 % [3 M5 j) b4 h2 j& y1 y/ N
7 z( | y S& J% w, O: c2 o/cg{2}i/ 找到c後面跟著2個g,再跟著i的字符串
# w6 O% H7 ?2 L- r6 C$ O4 y# z
8 a; p4 u- ]% u5 P0 o4 Z& z/cg*i/ 找到c後面跟著0個或多個g,再跟著i的字符串,如同/cg{0,1}i/
* s! ^* a+ T# H+ r* x j- B) Y, ]: k: w2 C5 `- u4 U# j2 L
/cg+i/ 找到c後面跟著一個以上g,再跟著c的字符串,如同/cg{1,}i/
$ Y6 J% U6 A- x7 ~
* G3 q. ` P* s3 s/cg?i/ 找到c後面跟著0個或是一個g,再跟著c的字符串,如同/cg{0,1}i/ 9 O, C' \& h" [: y0 C
9 F% s1 k+ j2 y9 z$ f. ~, M6 N: T/c.i/ 找到c後面跟著一個任意字符,再跟著i的字符串
$ s9 c0 p& S5 o7 W" J4 c; z6 Z
' F p8 b" h9 O3 l/c..i/ 找到c後面跟著二個任意字符,再跟著i的字符串
, q, E( J0 N Z4 W9 E7 j
; V' ? B3 D w& I, a7 z/〔cgi〕/ 找到符合有這三個字符任意一個的字符串 ; w& d3 i: E y) T; Q! b' C. u
6 q! r' R" W W% {! S+ v: s ]
/〔^cgi〕/ 找到沒有這三個字符中任意一個的字符串 & D0 n" M3 ?" q0 p. h; U
9 p1 U8 R2 e3 ?, J( Z9 u/\d/ 找尋符合數值的字符串 . ^; ^7 r7 d! {- S
6 [8 |6 J% X9 K( V- o 可以使用/\d+/來表示一個或是多個數值的字符串
' O- o0 D5 b+ \: f/ u
& E+ e4 j/ m9 J ~# U/\D/ 找尋符合不是數值的字符串
" {/ {8 J- e% r0 o. Q% f& P6 |( a# K, u& H1 B! @, N+ K+ [6 R! ?
可以使用/\D+/來表示一個或是更多個非數值的字符串 5 ^0 L8 w) f5 Y- {$ B: r
1 A; |! b# t8 o- h
/\w/ 找尋符合英文字母,數值的字符串
/ S( M1 V! B& v* R" Y% \' ^+ U& O0 P3 Z- p2 T* d: s
可以使用/\w+/來表示一個或是更多個英文字母,數值的字符串 ! p7 r9 L. T+ D# v( r2 ~
% x& [( Z- R# ?6 I% `
/\W/ 找尋符合非英文字母,數值字符的字符串 6 O p7 p! c! e+ n2 o
$ d! U/ y4 l" Z; o5 E5 v8 t/ J 可以使用/\W+/來表示一個或是更多個非英文字母,數值的字符串
6 J6 ?# F1 t, q# w& L, }) x5 h2 P; O2 w' H: M; b7 P+ A
/\s/ 找尋符合空白的字符串 + D, p% q- o: @) @1 K+ Q
. H' L. v1 @ i* ^4 l# H/ `2 j
可以使用/\s+/來表示一個或是更多個空白字符的字符串 ! u/ `) ?: n0 r/ s. j+ {2 F) z+ o O% M
4 ~% L* R, ?$ {
/\S/ 找尋符合不是空白的字符串 w4 S# R& o& C' `' {) ^
) M y q8 |( @ 可以使用/\S+/來表示一個或是更多不是空白的字符的字符串
) `2 C$ C/ X( D5 l" b1 n0 F9 U' Y7 [4 U
/\*/ 找尋符合*這個符號的字符串,因為*在常規表達式中有它的特殊意思,所以要在這個特殊符號前加上\這個符號,這樣才會讓這個特殊字符失效
" N$ n6 Q; z5 {8 b9 u0 G, P/ K1 U3 ^& c6 ~2 d0 }
/abc/i 找尋符合abc的字符串而且不考慮這些符合字符串的大小寫8 \) r2 I s; t2 V5 j- }7 N
" }8 f$ {" S' E, V, u[ Last edited by 苦苦 on 2004-7-27 at 08:17 ] |
|