If-Contains Text(テキストが含まれている)で複数個条件を指定したい

【質問】
「IF - テキスト」(If-Contains Text)で複数条件を指定することは可能でしょうか。
(例:「jpeg」「png」のいずれかを含んでいればOK、としたい)

【回答】
正規表現を用いて、検索する文字列をパイプライン文字「|」で区切れば可能です。
以下、サンプルです。

<AMVARIABLE NAME="var_FileName" />
<AMLOOP ACTIVITY="list" LIST="A.jpeg,B.txt,C.xlsx,D.png,E.bmp,F.exe,G.docx" RESULTVARIABLE="var_FileName" />
<!--画像ファイルであるか、画像ファイルではないかを判断-->
<AMIF ACTIVITY="contains_text" TEXT="%var_FileName%" SUBSTRING="jpg|jpeg|bmp|png|gif" ACTION="end_with" USERE="YES" />
<AMSHOWDIALOG>「%var_FileName%」は画像ファイルです</AMSHOWDIALOG>
<AMELSE />
<AMSHOWDIALOG>「%var_FileName%」は画像ファイルではありません</AMSHOWDIALOG>
<AMIF ACTIVITY="end" />
<AMLOOP ACTIVITY="end" />

 

なお、以下のような正規表現を用いると、AND条件も記述可能です。

<AMVARIABLE NAME="var_text" VALUE="ゾウうさぎライオンキツツキパンダツキノワグマ" />
<!--「ライオン」も「うさぎ」も含む場合にTRUE-->
<AMIF ACTIVITY="contains_text" TEXT="%var_text%" SUBSTRING="^(?=.*ライオン)(?=.*うさぎ).*$" USERE="YES" />
<AMSHOWDIALOG MESSAGE="満たします" />
<AMIF ACTIVITY="end" />
<!--「ライオン」を含み「ウマ」を含まない場合にTRUE-->
<AMIF ACTIVITY="contains_text" TEXT="%var_text%" SUBSTRING="^(?=.*ライオン)(?!.*ウマ).*$" USERE="YES" />
<AMSHOWDIALOG MESSAGE="満たします" />
<AMIF ACTIVITY="end" />

 

Knowledge記事検索

Knowledge

News・Information