文字と文字の間の値を取得したい

あいうえお
12345678
かきくけこ

というデータがあり、【あいうえお】と【かきくけこ】の間の数値を取得したいと考えております。
正規表現で数値が8桁続く値を取得することはできましたが、
【あいうえお】の前や【かきくけこ】の後にユーザIDなどの数値が含まれることがあり、
精度を高めるために、上記のような条件で数値を取得できればと考えております。
こちらも正規表現を使って取得することができますでしょうか。

【あいうえお】と【かきくけこ】という文字列は固定になります。

Hi @aless_123

Input = "Aiueo
12345678
Kakikukeko"

Output = System.Text.RegularExpressions.Regex.Match(Input,"(?<=Aiueo\s*)\d+(?=\s*Kakikukeko)").Value.Trim()

Regards

Hi @aless_123

Try this

((?<=Aiueo\s*)\d+(?=\s*Kakikukeko))

System.Text.RegularExpressions.Regex.Match(Input,"((?<=Aiueo\s*)\d+(?=\s*Kakikukeko))").Value

Regards,

Hi @aless_123

Check the below workflow for better understanding:

Input = "Aiueo
12345678
Kakikukeko"

Output = System.Text.RegularExpressions.Regex.Match(Input,"(?<=Aiueo\s*)\d+(?=\s*Kakikukeko)").Value.Trim()

Let me know if you have any queries

Regards

こんにちは

以下の式をお試しください

System.Text.RegularExpressions.Regex.Match(yourString,"(?<=あいうえお\r?\n)\d+(?=\r?\nかきくけこ)").Value

@Yoichi
ご回答ありがとうございます。
説明が足りておらず、申し訳ありません。
inputデータとなる【あいうえお】~【かきくけこ】はoutlookのメールから取得しており、
他にも回答してくださった方の例を試してみましたが、恐らくデータ型の問題でエラーとなっております。

どのようなエラーが出ているか共有可能でしょうか?

System.Text.RegularExpressions.Regex.Match(yourString,“(?<=あいうえお\r?\n)\d+(?=\r?\nかきくけこ)”).Valueの処理中にコンパイルエラーが発生しました。
型’System.NEt.Mail.Mail.Message’の値を’String’に変換できません。
というエラーが表示されております。

yourStringの部分がMailMessage型のようなので、その後ろに.Bodyをつけてみてください。

System.Text.RegularExpressions.Regex.Match(yourMail.Body,"(?<=あいうえお\r?\n)\d+(?=\r?\nかきくけこ)").Value

outlookから取得した値は
MailMsgという変数に格納しており、
変数の型はSystem.Collections.Generic.List<System.Net.Mail.Message>
という型になります。

System.Text.RegularExpressions.Regex.Match(MailMsg(0).body,“(?<=あいうえお\r?\n)\d+(?=\r?\nかきくけこ)”).Value

System.Text.RegularExpressions.Regex.Match(MailMsg.body,“(?<=あいうえお\r?\n)\d+(?=\r?\nかきくけこ)”).Value

で試してみましたが、うまくいかず、、、

変数の型について知識がなく、申し訳ありません。

MailMsgの型を変更したらよろしいでしょうか。

エラーが出ていますか?それとも空文字列が返りますか?

よくある実装例としては以下になります。後者は正規表現パターンの問題の可能性が高いので、パターンの見直しになります。

@aless_123

You have to use For Each loop

Output=System.Text.RegularExpressions.Regex.Match(currentMailMessage.Body,"((?<=Aiueo\s*)\d+(?=\s*Kakikukeko))").Value

Cheers!!