正規表現を使って一致する文字列を取得したいですが、うまく変数に入りません。
ご教授いただけますと助かります・・・。
■使用アクティビティ:
一致する文字列を取得
■パターン:
“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}
HANACCHI
(はなっち!UiPath Japan MVP 2019-2022)
3
まず、【“AccountType”:1】をマッチさせるとしたら、パタン中に二重引用符が足らないと思います。
“”“AccountType"":[0-9]{1}”
それと、「一致する文字列を取得」アクティビティの結果は、IEnumerableですので、MATCH属性の配列が返却されます。
ですので、tempResult1(0).ToStringとすると、最初に見つかった結果が取得できます。
1 Like
HANACCHI
(はなっち!UiPath Japan MVP 2019-2022)
4
一致する文字列が見つからないと、例外として「System.NullReferenceException」が返却されますね。
1 Like
@Takesawa_Yoshie さん、
@HANACCHIさん言った通り、 パターン:AccountType:[0-9]{1}は正しくしないです。
もし複数結果を確認したいなら、Loopを入れて、出力してみてください。
ありがとうございます!
正規表現の知識が足りてませんでした。
頂戴したパターンでやってみます。
また、stringに変換が必要ですね。
こちらも、やってみます。
※本日外出してしまいましたので、明日対応して改めてお返事いたします。
1 Like
ありがとうございます。
今回は入力文字列中に該当のキーワードは一回しか出てこないです。
なので、ループは不要でしたが、参考にさせていただきます!
ご指摘のとおりの対応で解決しました。
ありがとうございました!
1 Like
system
(system)
Closed
9
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.