規則表示式提供識別文字字串的方法,例如特定字元、字詞或字元樣式。使用 Model Review 時,有一些更常見的用法,包括遵循命名慣例,或是針對十分明確的資訊排序專案模型中的註解。
規則表示式使用特殊字元為定義配對提供更多彈性。特殊字元包括:
+ * ? . [ ] ^ ( ) | \
下列各部分說明如何使用每個特殊字元:
句點 (「.」)將與任一字元相符。
表示式 |
含義 |
相符 |
不相符 |
390-. |
符合字串「390-」後接任何字元。 |
390-A, 390-1, 390-- |
390-A1, 1390-1 |
Revision .Released |
符合字串「REVISION」後接任何字元,然後再接字串「Released」 |
Revision A Released Revision 1 Released Revision # Released |
Revision A1 Released RevisionAReleased |
方括弧 (「[ ]」) 定義「字元類別」,其符合括弧內字元的任何「單一字元」。在括弧中,除了「^」之外所有特殊字元都將失去其原意,當使用「^」作為括弧中的第一個字元時,其表示「不」符合指定的字元。
此外,在方括弧內可使用範圍。
表示式 |
含義 |
相符 |
不相符 |
[akm] |
字元:a、k 或 m。 |
A、K、M |
Akm、ak、G |
[a-z] |
任何字母 |
A、b、c、d |
1、2、-、# |
[^akm] |
只要不是 a、k 或 m 的字元。 |
C、f、G Am (因為它是兩個字元) |
A、k、m |
[0-9] |
任何數字 |
0、4、7 |
A、#、z |
[a-z][a-z] |
任何兩個字母 |
AB、BC、DE |
A (僅一個字母) A1 12 |
星號 (「*」) 後接表示式,表示前面的表示式可以出現「零或多次」。
表示式 |
含義 |
相符 |
不相符 |
Ab*c |
「A」後接零個或多個 b,再以 C 結尾。 |
Ac Abc Abbbbbbbc |
Bbb Abcd |
[a-z]* |
任一數目的任何字母 (即僅限字母 &endash; 也包括零個字母) |
A Bob AAAAA Steel <空白> (因為 * 可表示零個字母) |
STEEL230 12 AA-## |
加號 (「+」) 後接表示式,表示前面的表示式可以出現「一或多次」。
表示式 |
含義 |
相符 |
不相符 |
Ab+c |
「A」後接一個或多個 b,再以 C 結尾。 |
Abc Abbbbbbbc |
Ac Bbb Abcd |
[a-z]+ |
任一數目的任何字母 (即僅有字母) |
Bob AAAAA Steel |
STEEL230 12 AA-## <blank> |
問號 (「?」)後接表示式,表示前面的表示式為可選。
表示式 |
含義 |
相符 |
不相符 |
Ab?c |
「A」後接可選的「b」,再以 C 結尾。 |
Ac Abc |
Abbc Abcd |
390-[a-z][a-z]? |
「390-」後接字母,再接第二個可選字母。 |
390-A 390-AB |
390-11 390- 390-ABC |
直立線 (「|」) 字元在兩個表示式之間用做 OR (通常以括號括住)。
表示式 |
含義 |
相符 |
不相符 |
(390|241)-[a-z]+ |
「390」或「241」後接「-」,再接一個或多個字母。 |
390-A 241-A 241-AB |
200-A 241 241- |
As per (MS2377|CS123) |
「As per」後接「MS2377」或「CS123」 |
As per MS2377 As per CS123 |
As per As per MS3222
|
390-([abc]|[123]) |
「390-」後接「a」、「b」或「c」或「1」、「2」或「3」。 |
390-A 390-3 |
390-F 390- |
如果必須確實符合「特殊字元」的字元,特殊字元前面的反斜線可告知 Model Review 該字元應依其字面解讀 (而非作為特殊字元解讀)。
表示式 |
含義 |
相符 |
不相符 |
[0-9]\+ |
數字後接「+」。 |
1+ 2+ |
1 A 1+1 |
What\? |
「What」後接問號。 |
What? |
What's Up? |
Model Review 中的常見工作是以特定值作為「開頭」或「結尾」。此語法對以往常用「搜尋」型式規則表示式的人而言有一個相異之處。建議的方法是在表示式前端或後端使用「.*」或「.+」,指示開頭或結尾。
表示式 |
含義 |
相符 |
不相符 |
390-.* |
以「390-」開頭 (以任何字元結尾 &endash; 包括空格)。 |
390-1 390-111 |
1390-1 |
390-.+ |
以「390-」開頭 (以任何字元結尾,但必須至少有一個字元)。 |
390-1 390-111 |
1390-1 390- |
.*-[a-z] |
以「-」和一個字元結尾 (以任何字元開頭 &endash; 包括空格)。 |
Revision-A Rev-A -A |
Revision-A1 Rev-1 123 -1 |
.+-[a-z] |
以「-」和一個字母結尾 (以任何字元開頭,但必須至少有一個字元)。 |
Revision-A Rev-A |
Revsion-A1 Rev-1 123 -1 -A |
規則表示式是用於比對文字的強大工具 (但用法有些複雜)。若要解決更複雜的需求,您可能必須熟練地混用多個表示式來建立複雜的表示式。
以下是一些複雜表示式的範例:
表示式 |
含義 |
相符 |
不相符 |
[0-9]+[-]?[0-9]+ |
多個數字之間有一個可選破折號。 |
123-45 12345 |
12A32 1232-A A |
.*[^_] |
不能以底線 (_) 作為結尾。 |
123324 PART1 |
12343_ |
(390|231)-[a-z0-9]+-[0-9]+ |
390 或 231 後接「-」,至少有一個字元的英數區段,再接「-」和至少一個數字。 |
390-mypart-1 231-bracket-99 |
120-mypart-1 380- - |