knowledge AutoMate 自習用コンテンツ(一問一答) その1

【課題】
以下の内容を満たすタスクを作成してみましょう。


■Q. テキスト「A3」から、数字だけを抜き出して変数に格納する以下のタスクを完成させてください。
前提:同じタスク内容で、元のテキストが「B91」「XX3」「AAA376」でも同様に数字のみ抜き出せるようにして下さい。
「B91」に対しては「91」が抜き出せるが、「AAA376」からは「76」のみを抜き出した結果になった、という場合は不可です。
元になるテキストは、必ず「アルファベット大文字1文字以上」+「数字1文字以上」で構成されるものとします。

<!--変数宣言-->
<AMVARIABLE NAME="var_listVal" DESCRIPTION="リスト値の一時格納用変数" />
<AMVARIABLE NAME="var_result" DESCRIPTION="処理結果格納用変数" />
<!--リストの値をカンマ区切りで、順繰りに「var_listVal」に格納-->
<AMLOOP ACTIVITY="list" LIST="A3,B91,XX3,AAA376" RESULTVARIABLE="var_listVal" />
<!--*********************************************************************************-->
<!--***********「var_result」に「var_listVal」から数字のみを抜き出した値を格納してください***********-->
<!--*************************ここ以下に処理を追加してください*************************-->
<!--*************************ここ以上に処理を追加してください*************************-->
<!--*********************************************************************************-->
<AMSHOWDIALOG>「%var_listVal%」から数字のみを抜き出した結果は
「%var_result%」
です。</AMSHOWDIALOG>
<AMLOOP ACTIVITY="end" />

■ヒント
(ヒントを見る際は、クリックして展開してください。ヒントはあくまでも一例です。)

ヒント1

「アルファベットを全て消す」または「数字文字列のみ抽出」のいずれかで対応可。桁数指定はNG。

  

ヒント2

「アルファベット大文字1文字以上」および「数字1文字以上」は、「正規表現」で表現可能。

  

ヒント3

正規表現を使うと、「アルファベット大文字1文字以上」→「[A-Z]+」、「数字1文字以上」→「\d+」で表現可能。

  

■処理例
コメント部分に挿入する処理の一例です。

処理例1

「アルファベットを全て消す」

<AMTEXT ACTIVITY="replace" TEXT="%var_listVal%" FIND="[A-Z]+" REPLACE="" RESULTVARIABLE="var_result" USERE="YES" />

  

処理例2

「数字文字列のみ抽出」

<AMTEXT TEXT="%var_listVal%" FIND="\d+" USERE="YES" FOUNDTEXTVARIABLE="var_result" />

■実際に利用が考えられるケース
セル参照の値から、行番号を抜き出す場合など。