PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.3 TCLplusスクリプトの文法

3.3.7 正規表現

正規表現とは、文字列の構造を記号で表したものです。
TCLplusでは、regexpコマンドやregsubコマンドで"表3.5 TCLplusで使用できる正規表現"に示す正規表現を使用できます。

[表3.5 TCLplusで使用できる正規表現]

記号

意味

例の解説

.

任意の1文字を表します

ABC.

文字中に"ABC"とそれに続く任意の1文字からなる4文字の文字列を表します

*

直前の正規表現の要素が0回以上繰り返されることを表します

<.*>

"<"と">"で囲まれた文字(囲まれた中は空白も可)を表します

+

直前の正規表現の要素が1回以上繰り返されることを表します

<.+>

"<"と">"で囲まれた文字(囲まれた中には任意の文字が1文字以上存在する)を表します。

?

直前の正規表現の要素が0回または1回出現することを表します

A?

"A"または"AA"を表します

(正規表現)

正規表現をグループ化します。繰り返しや選択は、グループ化された正規表現全体に適用されます。

(ABC).

"ABC"の繰り返しを表します

|

直前の正規表現または直後の正規表現を表します

{Info|Warning}

"Info"または"Warning"を表します

[文字集合]

文字集合の中の1文字を表します。ただし、最初の文字が"^"(ハット)の場合は、文字集合に含まれない文字を意味します。文字集合で範囲を表すには[a-z]のように"-"(ハイフン)を使用します。

ABC[0-9][0-9][^ ]

"ABC"に続く2桁(1桁の範囲は0から9まで)の数字があり、さらにその直後が空白以外であることを表します

^

正規表現の先頭に指定された場合、正規表現が先頭であることを表します

^ABC

"ABC"が文字列の先頭であることを表します

$

正規表現の末尾に指定された場合、正規表現が末尾であることを表します

ABC$

"ABC"が文字列の文末であることを表します

特殊記号と正規表現記号の扱い

正規表現記号のうち、スクリプト上の特殊記号と同じものがあるため、それらを使用する場合には以下のように記述してください。

例1:
regexpの引数に正規表現の"[0-9]"を指定します。
regexp "\[0-9\]" $text

または、以下のように記述します。
regexp {[0-9]} $text

また、正規表現記号を正規表現の中で単なる文字として扱う場合は、円記号(\)を直前に付加してください。ただし、円記号はスクリプトとしての特殊記号でもあるため、記述する際には"\\"とするか正規表現全体を中括弧で囲む必要があります。

例2:
文字"*"を含んでいるかを検査します。
regexp "\\*" $text

または、以下のように記述します。
regexp {\*} $text

例3:
文字"["を含んでいるかを検査します。
regexp "\\\[" $text

または、以下のように記述します。
regexp {\[} $text

また、正規表現の中で円記号自身を単なる文字として扱わせる場合は、"\\"と記述する必要があります。この場合も円記号がスクリプトとしての特殊記号であることを考慮し、2つの円記号それぞれを"\\"とするか、正規表現全体を中括弧で囲む必要があります。

例4:
文字"\"を含んでいるかを検査します。
regexp "\\\\" $text

または、以下のように記述します。
regexp {\\} $text

パターン検索の規則

regexpコマンドやregsubコマンドで文字列を検査する場合、以下の規則があります。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005