2個以上全角スペースが存在したらそれ以降を切り捨てて、String変数に残りを代入したい

UiPath Studio 2023.10.0 EnterPriseユーザです。

こんにちは。Excelシートに改行コードで区切られた下記の住所一覧があります。

青森県 青森市 長島1-1-1
岩手県 盛岡市 内丸10-1
宮城県仙台市青葉区 本町3-8-1
秋田県 秋田市 山王4-1-1

この情報をRead RangeアクティビティでDataTableに取得後、DataRow引数i_dr_TransactionItem(“住所1”)に値を入れています。

見えないと思いますが、住所の中の空文字は全角スペースで統一されています。
(例:”青森県”と”青森市”の間、”秋田市”と”山王4-1-1”の間)
行間の区切り文字は改行コードです。

i_dr_TransactionItem(“住所1”)に2個以上全角スペースが存在したらそれ以降を切り捨てて、String変数str_住所1に残りを代入したいのですが、どのような構文が考えられるでしょうか。有識者の方、アドバイスをお願い致します。

入力が

青森県 青森市 長島1-1-1

であれば

青森県 青森市

を抽出したいということでしょうか?

そうであれば、例えば以下の式で可能です。

System.Text.RegularExpressions.Regex.Match(i_dr_TransactionItem("住所1").ToString(),"^[^ ]+ [^ ]+").Value

申し訳ありませんが、

にいただいた正規表現
[1]+ [^ ]+

を貼り付けるとエラーになります。(添付画像)

の使い方をご存じであれば共有をお願い致します。

正規表現式を詳しくは知らないため、式の意味を日本語に翻訳いただけると助かります。


  1. ^ ↩︎

上記の際とはPHPまたはJavaScript用の正規表現チェックサイトなので、.netベースのUiPathの正規表現とは異なります。

上記の画像を見ますと、連続する2個以上の全角スペースがあればその前ということでしょうか?
そうであれば以下になります。

System.Text.RegularExpressions.Regex.Match(i_dr_TransactionItem("住所1").ToString(),"^.*?(?=  )").Value

正規表現式を詳しくは知らないため、式の意味を日本語に翻訳いただけると助かります。

^ 文字列先頭
.*? 改行を除く任意の文字列(最短一致)
(?= ) 全角空白2文字より手前

になります

.netベースのUiPathの正規表現チェッカーでおすすめのサイトはどれになりますか?

regex101 (左のFlavorを.NET(C#)にしてください

regexstorm

あたりでしょうか

Flavorを.NET(C#)に設定してもマッチしないのはどうしてでしょうか。

失礼しました。フォーラム上で全角がうまく表現できていなかったようです。以下で試せますでしょうか?

System.Text.RegularExpressions.Regex.Match(i_dr_TransactionItem("住所1").ToString(),"^.*?(?=  )").Value

すみません、やはり自動で半角に変換されるようなので、上記の半角2つの部分を全角2つにおきかえてください。

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