文字列の中の特定の文字の後ろを取得(複数)

いつもお世話になっております。

文字列Xから”申請番号”の後ろの文字列を取得したいのですが、1つしかない場合と複数ある場合があり上手く取れず困っています。

欲しい結果は "2022-AA-000A"と"2022-BB-0000e"を取得したいです。
また、申請番号"2022-AA-000A"と"2022-BB-0000e"の前後には半角の空白があります。

文字列X = “委託(申請番号 2022-AA-000A )//A/F0.f?p2=11@令和4年度業務委託(申請番号 2022-BB-0000e 申請)”

よろしくお願いいたします。

Hello @rkym123456
Try this

System.Text.RegularExpression.Regex.Matches(文字列X,"(?<=申請番号\s)\d{4}\W\D{2}\W\d+\D")(0).tostring.trim    -->2022-AA-000A
System.Text.RegularExpression.Regex.Matches(文字列X,"(?<=申請番号\s)\d{4}\W\D{2}\W\d+\D")(1).tostring.trim  -->2022-BB-0000e

回答ありがとうございます。

申請番号 = System.Text.RegularExpression.Regex.Matches(文字列X,“(?<=申請番号\s)\d{4}\W\D{2}\W\d+\D”)(0).tostring.trim

と代入に入れてみたのですが、"RegularExpressionはTextのメンバーではありません"のエラーが出ます。

よろしくお願いいたします。

Import the System.Text.RegularExpression
image

時間がたってしまい申し訳ありません。

すみませんが、もう少し教えてください。

教えてくださったとおり、System.Text.RegularExpressionを入力し、下に出てきたSystem.Text.RegularExpressionsを選択したのですが、まだエラーが出ています。

どこが間違っているのでしょうか??

もしかして、変数「申請番号」の型がちがうのでしょうか?
今はstring型です。
変数の型を検索したら下記のように出てきました。

ちなみに、もしこのような変数の型に変えなければならないなら、どれを選択したらよいのでしょうか。
よろしくお願いいたします。

HI @rkym123456

Little Modification in the @Gokul_Jayakumar Query

System.Text.RegularExpressions.Regex.Matches(文字列X,"(?<=申請番号\s)\d{4}\W\D{2}\W\d+\D")(0).tostring.trim    -->2022-AA-000A
System.Text.RegularExpressions.Regex.Matches(文字列X,"(?<=申請番号\s)\d{4}\W\D{2}\W\d+\D")(1).tostring.trim  -->2022-BB-0000e

Note : You should use RegularExpressions

Regards
Gokul

教えていただいたとおりにしたら、上手くいきました。

大変ありがとうございました。

1 Like

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