正規表現で一致する文字列を取得

正規表現を使って一致する文字列を取得したいですが、うまく変数に入りません。
ご教授いただけますと助かります・・・。

■使用アクティビティ:
一致する文字列を取得
■パターン:
“AccountType:[0-9]{1}”
■入力:
MemoX(変数)
■MemoXの中身: {“EntryDate”:“2019/4/1”,“AccountType”:1,“AddressNo”:“1010022”,“Address”:"(中省略)“PINRegistration”:1}
■結果:
tempResult1(変数。Cntl+Kで作成)

期待している結果としては、「tempResult1」に「“AccountType”:1」が入ってきてほしいのですが・・・。
実際には、tempResult1をログに吐き出すと、「System.Linq.Enumerable+d__97`1[System.Text.RegularExpressions.Match]」と帰ってきてしまいます。

すみません。
■MemoXの中身が文字化けしました。正しくは、以下です。

{“EntryDate”:" 2019/4/1",“AccountType”:1,“AddressNo”:“1010022”,“Address”:(中省略)“PINRegistration”:1}

まず、【“AccountType”:1】をマッチさせるとしたら、パタン中に二重引用符が足らないと思います。

“”“AccountType"":[0-9]{1}”

それと、「一致する文字列を取得」アクティビティの結果は、IEnumerableですので、MATCH属性の配列が返却されます。
ですので、tempResult1(0).ToStringとすると、最初に見つかった結果が取得できます。

1 Like

一致する文字列が見つからないと、例外として「System.NullReferenceException」が返却されますね。

1 Like

@Takesawa_Yoshie さん、
@HANACCHIさん言った通り、 パターン:AccountType:[0-9]{1}は正しくしないです。
もし複数結果を確認したいなら、Loopを入れて、出力してみてください。

ありがとうございます!
正規表現の知識が足りてませんでした。
頂戴したパターンでやってみます。
また、stringに変換が必要ですね。
こちらも、やってみます。

※本日外出してしまいましたので、明日対応して改めてお返事いたします。

1 Like

ありがとうございます。

今回は入力文字列中に該当のキーワードは一回しか出てこないです。
なので、ループは不要でしたが、参考にさせていただきます!

ご指摘のとおりの対応で解決しました。
ありがとうございました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.