7

こんにちは、NTTデータ WinActor技術支援チームです。
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
   
正規表現は、文字列の集合(いくつかの文字列)を一つの文字列で表現する方法です。
WinActorでも、この正規表現を使用して、操作できることをご存じでしょうか。
主なところでいえば、
「繰り返し」や「分岐」等の条件式、「ウィンドウ識別ルール」の識別情報の一つウィンドウタイトルの識別方式で
正規表現を指定することができます。
今回は、この正規表現についてご案内いたします。
  
正規表現は、「WinActor_Operation_Manual」(WinActor操作マニュアル)の7.付録に
7.3 正規表現の入力例として紹介されています。
  ※Ver.6.3.2は、「03_WinActor_操作マニュアル」 9.4 正規表現の入力例
  
《マニュアルイメージ》

  
ただ、これだと正規表現をどのように設定すれば、どんなことができるのかがわかりづらいですよね。
「表 7-10 正規表現の入力例」の要素名を基に、正規表現使用している文字の意味をご説明いたします。
 
これで、要素名がなぜ機能説明に記載されている内容を判別できるかお分かりになったでしょうか。
  
①の ^(ABC).*$ を例に説明すると
  
最初の ^ は、行の先頭を意味します。
( )は文字を1つのグループにまとめる時の表記なので、( )内の文字 ABC を指します。
^(ABC)は、行の先頭がABCということを指しています。
続く、 . は任意の一文字を指します。そしてその次の * は直前の文字が0回以上繰り返すを指しますので、
.* で、任意の一文字が0回以上繰り返すを指すことになります。
つまり、ABCの後の文字は、任意の文字が0文字以上ということを指しています。
そして最後の $ は行の末尾を指しますので、^(ABC).*$で、ABCで始まる文字列かどうかを表現しているというわけです。
「AB」は当てはまりませんが、「ABC」も「ABCあいう」もこの正規表現に当てはまります。

  
少し応用してみましょう。
ここではマニュアルに記載のない、以下の表現を使用してみます。

  
ハイフン付きの郵便番号(半角数字)を正規表現で表すと以下のようになります。
  
 ^[0-9]{3}-[0-9]{4}$

 
135-6033 は当てはまりますが、1356033や135-6033は当てはまりません。
住所録や顧客マスタ等の郵便番号の表記統一や、フォーマットが決まっているシステム入力に使用できそうですよね。
 
 
 
正規表現を使用すると、判定文字の幅が広がります。
上記は簡単な正規表現の一例ですが、
WEB上では複雑な正規表現の作成方法等も紹介されていますので、ぜひチャレンジしてみてください。
 
 
■注意事項■
ご注意いただきたいのは、Ver.6以前とVer.7では、準拠している正規表現のフォーマットクラスが異なることです。
  Ver.7:System.Text.RegularExpressions.Regex クラス
  Ver.6以前:java.util.regex.Pattern クラス
 ※Ver.6以前とVer.7では動作プラットフォームが異なる為、正規表現のフォーマットクラスが異なっています。
 
上記、マニュアル記載内容のような基本的な部分では同じですが、全てが同一というわけではなく、
Ver.7の正規表現のほうが提供する機能が若干多いです。
 
例えば、 ""\_"" はVer.6では""_""と同一の意味でしたが、Ver.7では特別な意味がありますので、
条件として利用することができません。(条件として指定するとエラーになります。)
また、Ver.6では半角文字にのみ当てはまっていた ""\w"" が、Ver.7では全角文字にも当てはまるといった点なども差異となります。
半角文字のみを当てはめる為に利用していた正規表現を
そのままVer.7で動かすと期待と異なる条件判断を行い、予期しない結果となる可能性があります。
 
Ver.7でVer.6形式の正規表現を使用する方法はございませんので、
Ver.6とVer.7を併用されていたり、Ver.7へのバージョンアップを将来検討されている場合は、
お手数ですが、必ずシナリオ内の正規表現の記述内容をご確認の上、必要に応じて修正を行ってください。
正規表現中にエスケープ(""\"")表記が使用されている場合は、特に注意してご確認をお願いいたします。
 
【参考】
Ver.7 の正規表現についての技術情報
 https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-language-quick-reference
Ver.6 の正規表現についての技術情報
 https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Pattern.html
 
 
 
【動作検証環境】
 OS:Windows10
 WinActor:Ver.7.3.1(Ver.6.3.2)
 
 
 
<お願い>
 本投稿に関しての問合せにつきましては、
 恐れ入りますがコメントではなく、個別問合せにてお願いいたします。
★お問合せ方法はこちらのコラムをご参照ください
 【WA0116】ユーザーフォーラムで質問を投稿するときの手順

技術支援チーム53 質問の編集
回答とコメントは、会員登録(無料)で閲覧できるようになります。