正規表現
正規表現 (regex) は、検索パターンを形成する文字列です。このパターンは、他の文字列を見つけることができます。
正規表現は理論計算機科学を起源とし、数学的な原理に基づいています。より実用的なアプローチのため、この章では正規表現の理論的な内容については触れません。もし、正規表現についてより詳しく知りたい場合には、Web 上に多くの情報源があります。Wikipedia の 正規表現 のページを確認することから始めるのがおすすめです。
この章では、正規表現を使用する理由、正規表現の構文の概要、Ranorex Studio における正規表現の利用について説明します。
このセクションでは、正規表現がどのように機能するかを説明し、その記述方法について説明します。
正規表現の動作
最初に説明したように、正規表現は基本的には検索パターンですが、Ranorex Studio においては、フィルターとして機能します。
Ranorex Studio においては、正規表現は以下で使用されています。
- RanoreXPath 式
- 文字列を検証する Validation アクション
- 文字列を抽出する Get アクション
- 重み付けルール条件
これらを説明する例として、バリデーションを取り上げます。バリデーションで、UI 要素の属性値を検証するとします。この値、つまり、チェックされる文字列は、文字と数字で構成されます。今回のバリデーションでは、数字のみをチェックするものとします。また、テスト対象アプリ側の動作の結果、この数字が変化するものとします。したがって、今回のバリデーションでは、文字列の中から、固定値ではない、任意の数字を見つけられる必要があります。これを実現するために正規表現を使用します。
テスト対象アプリでは、データベース エントリーの数が、アルファベットと数字で表示されます。
正規表現を使用して、アルファベットと数字の中から、数字だけを検索します。
この処理によって、数字のみがバリデーションに渡されます。他の文字列は無視されます。
正規表現のスタイル
次のセクションで正規表現の構文と例について説明する前に、正規表現のスタイルについて説明します。
多くの数式やフィルターなどと同様に、同じ結果を得るために使用できる、いくつかの異なる正規表現を使用することができます。どの正規表現を使用するかは、2 つの要因に依存します。
汎用的な記述
ほとんどの場合、より汎用的に、つまり、より多くのケースに適用できるように、正規表現を記述することをおすすめします。ある特定の問題を解決したい場合には、特殊化した記述を使用します。
例:
多くの場合、動的な ID は、任意のプレフィックスまたはサフィックスと、ランダムな文字列で構成されます。このような動的 ID にマッチする正規表現は、例えば、プレフィックスはあるがサフィックスはない動的な ID といった特定のパターンを特定するためだけではなく、できるだけ汎用的なものにする必要があります。
読みやすい記述
正規表現は数学的原理に基づいているため、最小限の文字列でこれを表現することができます。これは無駄を避けた表現かもしれませんが、多くの場合、他の人にとっては読みにくく難解なものかもしれません。チームで作業する場合には、このことを覚えておいてください。