I want to form a regex to get the following particular string from list of strings.
ITNddMM1.zip + anything. all that we should be concerned about is the part till zip.
this is required to filter out mails from the list of mails and then download the same.
Welcome to the UiPath community.
please try this
ITNddMM1.zip.*
or this if it has multiple lines,
ITNddMM1.zip[\d\D\w\W\n\s.]*
If ITNddMM1 is not constant try this,
.*.zip.*
Or
.*.zip[\d\D\w\W\n\s.]*
Pick the pattern according to your need, all of them works with your requirement.
Thanks
let me try, but how should i use this in assign activity like any specific function to enter the pattern as input to it ?
Did you find the activity called matches.
If you not find try this in assign,
Result = system.text.regularexpression.regex.matches(yourstring,yourpattern)
Result - System.Text.RegularExpressions.Matches
Yourstring - ITNddMM1.zip + anything
Yourpattern - paste pattern I provided
Thanks
Hi
Welcome to uipath forum
You can do this in two ways
- With assign activity like this
Out_matches = System.Text.RegularExpressions.Regex.Matches(your input string.ToString,” ITNddMM1.zip[\d\D\w\W\n\s.]*”)
Where out_matches is a variable of type
System.Text.RegularExpressions.Matches
Or
- You can try using MATCHES activity with the same expression
Here you go on how to use it
Cheers @Suraj_Das_IN
Thankyou .
i did try this solution but , it returns me of type matches which is of no use for my requirement. how can i use this in the following line of code to filter out those subjects which have the particular pattern.
Code used by me currently:
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x)x.Headers(“Subject”).Tostring.Contains(in_FilterByMailSubject)).ToList
Basically this is used by me to filter out mails from the mail box based on a particular subject where in_FilterByMailSubject is my input string containing the mail subject.
I want regex for this as the mail subject is always dynamic by having time in it as follows:
ITN14091.zip [Time: 13:56:30] the bold part can be anytime hence i wanted a regex to filter out but how can i incorporate the same in my code above.
Thankyou .
i did try this solution but , it returns me of type matches which is of no use for my requirement. how can i use this in the following line of code to filter out those subjects which have the particular pattern.
Code used by me currently:
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x)x.Headers(“Subject”).Tostring.Contains(in_FilterByMailSubject)).ToList
Basically this is used by me to filter out mails from the mail box based on a particular subject where in_FilterByMailSubject is my input string containing the mail subject.
I want regex for this as the mail subject is always dynamic by having time in it as follows:
ITN14091.zip [Time: 13:56:30] the bold part can be anytime hence i wanted a regex to filter out but how can i incorporate the same in my code.
So you want the list of mail message as output based on the variable in_filterByMailSubject
And if you want to use the Regex for that subject headers then mention like this
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x) System.Text.RegularExpressions.Regex.Match(x.Headers(“Subject”).Tostring,”your regex expression”).ToString.Contains(in_FilterByMailSubject)).ToList
Or if the Regex is not with subject you receive but with variable you have
Then
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x) x.Headers(“Subject”).Tostring.Contains(System.Text.RegularExpressions.Regex.Match(in_FilterByMailSubject,”your Regex expression”).ToString)).ToList
Cheers @Suraj_Das_IN
yes correct. the subject for today would be
ITN14091.zip [Time : anytime]
similarly for tom the mail subject will be:
ITN15091.zip [Time : anytime]
Then this would work
Pls try and let know
Cheers @Suraj_Das_IN
@Suraj_Das_IN what did the variable in_FilterByMailSubject contains ?
as of now i was trying to use it as a string type variable with subject in it , but as it would be dynamic i cant understand how to use it, if it can be replaced with regex would be better i think
@Suraj_Das_IN I couldn’t understand that, you have a list of mail message and you Loop the subject of the mail’s and check if the subject had a pattern you are referring, where is thia variable in_FilterByMailSubject value coming from?
Thanks
yes i agree , there is no use of variable
@Suraj_Das_IN please try this,
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x) system.text.regularexpressions.regex.matches(x.Headers(“Subject”).Tostring,“.*.zip[\d\D\w\W\n\s.]*”,regexoptions.ignorecase).count > 0).ToList
Or
MailMssgs = MailMssgs.AsEnumerable().Where(Function(x) system.text.regularexpressions.regex.matches(x.Headers(“Subject”).Tostring,“[a-zA-Z]{3}\d{4,6}.zip[\d\D\w\W\n\s.]*”,regexoptions.ignorecase).count > 0).ToList
Both will work give a try
Thanks
@Suraj_Das_IN did that worked?
Thanks
i want to extract 41421 42701 32801 42801 90029 35051 49001 this type of string but my string is dynamically change ,
41421 42701 32801 42801 90029 35051
41421 42701 32801 42801 90029 35051 49001 35051
so how we can make regular expression dynamic to fetch dynamic data?