c# - Regular expression MatchCollection returns 1 instead of expected 3 -
i have long string in c# it's formatted such \\server\value i've been using regular expression pattern of "(?<='\\\\).*(?=\\)" extract server string. there's use case multiple '\server\value' strings chained '\\servera\value1' + '\\serverb\value2' + '\\serverc\value3'
i'm trying use matchcollection extract server name using pattern (?<=.\\\\).*(>=\\)
the period in first grouping construct account ' character. expect result return 3 occurences returns 1. what's wrong pattern?
string expression = "'\\\\servera\\value1' + '\\\\serverb\\value2' + '\\\\serverc\\value3'"; string pattern = @"(?<=\\\\).*(?=\\)"; matchcollection matches; matches = regex.matches(expression, pattern);
if got, i're getting result
servera\value1' + '\\serverb\value2' + '\\serverc
and want these matches:
servera serverb serverc
you can use lazy quantification:
(?<=\\\\).*?(?=\\)
Comments
Post a Comment