正規表現の構文
このセクションでは、基本的な正規表現のメタ文字(特殊文字)と、基本的な構文について、例を取り上げて説明します。
Ranorex Studio は、.NET の正規表現エンジンを使用しています。これは非常に強力で複雑であるため、そのすべてを説明することは、このユーザーガイドの範囲を超えてしまいます。より詳しい情報については、Microsoft の公式ドキュメント を参照してください。
メタ文字(特殊文字)
正規表現で演算子として使用される文字があります。これらの文字は、メタ文字(特殊文字)と呼ばれます。
これらの文字をメタ文字として扱われたくない場合、例えば、その文字自体を検索したい場合、その文字を”エスケープ”する必要があります。メタ文字の前に、バックスラッシュ() を付けることでおこないます。
. | 任意の一文字 |
^ | 文字列の先頭 |
$ | 文字列の最後 |
| | OR 演算子 |
? | 直前のパターンの 0~1 回の出現 |
+ | 直前のパターンの 1 回以上の連続 |
* | 直前のパターンの 0 回以上の連続 |
{ } | 直前のパターンの指定回数の連続 |
( ) | グループ化 |
[ ] | 括弧内に指定した文字のうち、いずれかの文字 |
正規表現の例
単一要素の表現
[1234567]
- 括弧内に含まれるいずれかの一文字 (1~7 のいずれか) にマッチ
- 別の表記方法:
[1-7]
[Max]
- 括弧内に含まれるいずれかの一文字 (“M”, “a”, “x” のいずれか) にマッチ
- “Max” にはマッチしません
[1-35-8]
- 1, 3, 5, 6, 7, 8 のいずれかにマッチ
- 35 にはマッチしません
複数要素の表現
[1-9][ab]
- それぞれの括弧内の文字の組み合わせ (“1a”, “1b”, “2a”, “2b”, … “9a” など) にマッチ
量指定子
量指定子メタ文字 ?, +, *, {} は、適用する文字の後ろに記述します。
[1-9]?
- 1~9 の間のいずれかの数字が 0 個または 1 個にマッチ
(Colou?r)
は、”Colour” にも “Color” にもマッチ
[1-9]+
- 1~9 の間のいずれかの数字が 1 個以上にマッチ
- つまり、0 以上のあらゆる数字にマッチ
[0-9]{5}
- 5 桁の数字にマッチ
[0-9]{3,}
- 3 桁以上の数字にマッチ
[0-9]{3,5}
- 3~5 桁の数字にマッチ
先頭にマッチ
^Image_
- “Image_” で始まるあらゆる文字列にマッチ
(^Image_)[0-9]{3}
- “Image_” で始まり、そのあとに 3 桁の数字が続く文字列にマッチ
- “Image_001”, “Image_999”, “Image_127” など
(^Image_)[0-9]{3}(.jpg)
- “Image_” で始まり、そのあとに 3 桁の数字と “.jpg” が続く文字列にマッチ
- ピリオド (.) をバックスラッシュ () でエスケープ
最後にマッチ
Sample$
- “Sample” で終わるあらゆる文字列にマッチ
(Sample[0-9]{3}$)
- “Sample” のあとに 3 桁の数字で終わるあらゆる文字列にマッチ
プレースホルダー
Image.*
- “Image” のあとに、0 個以上の他の文字が続くあらゆる文字列にマッチ
- . は、任意の文字を表すプレースホルダー
- “Image3459834059346237832jkhdsdb”, “Image”, “ImageTheCat” などにマッチ
いずれかにマッチ
((G|g)r(a|e)y)
- “Gray”, “gray”, “Grey”, “grey” にマッチ
除外
[^
で、文字を除外指定できます。
[^0-9]
- すべての数字を除外。つまり、数字を含まない文字列にマッチ
RanoreXPathの例
正規表現を RanoreXPath 式で使用することもできます。いくつかの例を挙げます。
例 | 説明 |
button[@text~’sample[0-9]’] | 以下のボタン要素にマッチ: “sample0”, “sample1”, … “sample9”, “My sample26” |
listitem[@text~’^sample’] | text 属性の値が “sample” から始まるリストアイテムにマッチ |
listitem[@text~’sample$’] | text 属性の値が “sample” で終わるリストアイテムにマッチ |
listitem[@text~’gr(a|e)y’] | text 属性の値が “gray” または “grey” であるリストアイテムにマッチ |
listitem[@text~’^sample 123$’] | text 属性の値が “sample 123” であるリストアイテムにマッチ (バックスラッシュで、スペースなどの特殊文字をエスケープ) |