あいうえお
12345678
かきくけこ
というデータがあり、【あいうえお】と【かきくけこ】の間の数値を取得したいと考えております。
正規表現で数値が8桁続く値を取得することはできましたが、
【あいうえお】の前や【かきくけこ】の後にユーザIDなどの数値が含まれることがあり、
精度を高めるために、上記のような条件で数値を取得できればと考えております。
こちらも正規表現を使って取得することができますでしょうか。
あいうえお
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の型を変更したらよろしいでしょうか。
You have to use For Each loop
Output=System.Text.RegularExpressions.Regex.Match(currentMailMessage.Body,"((?<=Aiueo\s*)\d+(?=\s*Kakikukeko))").Value
Cheers!!