正規表現

正規表現とは、特定の文字や単語、または文字のパターンを含む文字列を識別する方法です。 

Model Review では、命名規則に合わせたり、特定の情報を見つけるためにプロジェクトモデル内の注釈を並べ替えるのに、正規表現がよく使用されます。

特殊文字

正規表現では、より柔軟に一致を定義するために、特殊文字を使用します。「特殊文字」には以下の文字があります。

+ * ? . [ ] ^ ( ) | ¥

以下のセクションで、各特殊文字の使用方法について説明します。

ピリオド

ピリオド(".")は、任意の 1 文字と一致します。

表現

意味

一致する例

一致しない例

390-.

文字列 "390-" に任意の 1 文字が続く場合に一致します。

390-A, 390-1, 390--

390-A1, 1390-1

Revision . Released

文字列 "Revision " に任意の 1 文字が続き、さらに文字列 " Released" が続く場合に一致します。

Revision A Released

Revision 1 Released

Revision # Released

Revision A1 Released

RevisionAReleased

角括弧

角括弧("[ ]")では、文字クラスを定義します。文字列クラスを指定すると、角括弧内に指定した文字と一致する任意の 1 文字を検索します。角括弧の中では、すべての特殊文字は、その意味を持たなくなります。ただし、例外は "^" が角括弧の中の最初の文字として使用された場合で、指定した文字と一致しないことを表します。

また、角括弧の中では範囲を使用することもできます。

表現

意味

一致する例

一致しない例

[akm]

1 つの文字。a、k、m のいずれか。

a、k、m

Akm、ak、G

[a-z]

任意の英文字

A、b、c、d

1、2、-、#

[^akm]

a、k、m 以外の 1 文字

C、f、G、

Am (2 文字であるため)

A、k、m

[0-9]

任意の数字

0, 4, 7

A、#、z

[a-z][a-z]

任意の 2 つの英文字

AB、BC、DE

A (1 文字だけ)

A1

12

アスタリスク

アスタリスク("*")に表現を続けると、直前の表現が 0 回以上適用されることを意味します。

表現

意味

一致する例

一致しない例

Ab*c

"A" に 0 個以上の b が続き、C で終わります。

Ac

Abc

Abbbbbbbc

Bbb

Abcd

[a-z]*

任意の英文字を何個でも(つまり、0 個以上の英文字のみ)

A

Bob

AAAAA

鉄鋼

<空白>(* では 0 個の文字も表せるため)

STEEL230

12

AA-##

プラス記号

プラス記号("+")に表現を続けると、直前の表現が 1 回以上適用されることを意味します。

表現

意味

一致する例

一致しない例

Ab+c

"A" に 1 個以上の b が続き、C で終わります。

Abc

Abbbbbbbc

Ac

Bbb

Abcd

[a-z]+

任意の英文字を何個でも(つまり、英文字のみ)

Bob

AAAAA

鉄鋼

STEEL230

12

AA-##

<空白>

疑問符

疑問符("?") に表現を続けると、直前の表現が省略可能であるという意味になります。

表現

意味

一致する例

一致しない例

Ab?c

"A" に省略可能な "b" が 1 個続き、C で終わります。

Ac

Abc

Abbc

Abcd

390-[a-z][a-z]?

"390-" に英文字が 1 個続き、2 個目の英文字は省略可能となります。

390-A

390-AB

390-11

390-

390-ABC

パイプ

パイプ("|")文字では、2 つの表現に OR (または)を設定します(通常は括弧で囲みます)。

表現

意味

一致する例

一致しない例

(390|241)-[a-z]+

"390" または "241" のいずれかに 1 個の "-" と 1 個以上の英文字が続きます。

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-" に 1 個の "a"、"b"、"c" のいずれかか、OR(または) 1 個の "1"、"2"、"3" のいずれかが続きます。

390-A

390-3

390-F

390-

特殊文字を表すバックスラッシュ

「特殊文字」と呼ばれる文字に対する一致を正確に指定するには、特殊文字の直前にバックスラッシュを指定すると、Model Review によって、その文字は特殊文字としてではなく、その文字のとおりに解釈されます。

表現

意味

一致する例

一致しない例

[0-9]¥+

1 個の数字に "+" が続く文字列

1+

2+

1

A

1+1

What¥?

"What" に疑問符が続く文字列

What?

What's Up?

「で始まる」と「で終わる」

Model Review で共通する作業は、特定の値「で始まる」または特定の値「で終わる」ことです。この構文は、「検索」スタイルの正規表現と異なり、違う構文として認識する必要があります。推奨される方法は、".*" または ".+" を表現の直前、または直後で使用し、「で始まる」、または「で終わる」を示すという方法です。

表現

意味

一致する例

一致しない例

390-.*

"390-" で始まります(空白を含む任意の文字で終わります)。

390-1

390-111

1390-1

390-.+

"390-" で始まります(任意の文字で終わりますが、最低 1 文字必要です)。

390-1

390-111

1390-1

390-

.*-[a-z]

1 個の "-" と 1 個の英文字で終わります(空白を含むあらゆる文字で始まります)。

Revision-A

Rev-A

-A

Revision-A1

Rev-1

123

-1

.+-[a-z]

1 個の "-" と 1 個の英文字で終わります(任意の文字で始まりますが、最低 1 文字必要です)。

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 のいずれかに、1 個の "-"、最低 1 個の英数字を指定した部分が続き、さらに 1 個の "-" と最低 1 個の数字が続く場合

390-mypart-1

231-bracket-99

120-mypart-1

380- -