Вопрос о Regex и должен быть довольно простым (я надеюсь).Регулярное выражение, не заботясь о кодах эвакуации
Я хочу, чтобы проверить строку, как это (Netsh выхода CMD):
"\r\nR‚servations d'URLÿ:\r\n--------------------\r\n\r\n URL r‚serv‚e : https://+:443/SomeWebSite/ \r\n Utilisateurÿ: AUTORITE NT\\SERVICE R\u0090SEAU\r\n \u0090couterÿ: Yes\r\n D‚l‚guerÿ: Yes\r\n SDDLÿ: D:(A;;GA;;;NS) \r\n\r\n\r\n"
с этим рисунком:
"URL .+https:\/\/\+:443\/SomeWebSite\/.+Yes.+Yes.+SDDL.+"
Итак, я намерен обнаружить такого рода строки (хххое это что-то (+)):
xxxxxURLxxxxxhttps://+:443/SomeWebSite/xxxxxYesxxxxxYesxxxxxSDDLxxxx
Я написал этот код в C#, чтобы сделать это, но мое выражение до сих пор не работает:
string output = "\r\nR‚servations d'URLÿ:\r\n--------------------\r\n\r\n URL r‚serv‚e : https://+:443/SomeWebSite/ \r\n Utilisateurÿ: AUTORITE NT\\SERVICE R\u0090SEAU\r\n \u0090couterÿ: Yes\r\n D‚l‚guerÿ: Yes\r\n SDDLÿ: D:(A;;GA;;;NS) \r\n\r\n\r\n";
output = output.Replace(Environment.NewLine, ""); //==> output2=="R‚servations d'URLÿ:-----------
Regex testUrlOpened = new Regex(output, RegexOptions.Singleline);
MessageBox.Show(testUrlOpened.IsMatch(@"URL").ToString()); // ==> False
MessageBox.Show(testUrlOpened.IsMatch(@".+URL.+").ToString()); // ==> False
MessageBox.Show(testUrlOpened.IsMatch(@"URL .+https:\/\/\+:443\/SomeWebSite\/.+Yes.+Yes.+SDDL.+").ToString()); // ==> False
Так что я полагаю, что я еще один вопрос с регулярным выражением в C# ... Может кодировать вопрос?
Спасибо за помощь!
Франсуа
Привет Моатаз, спасибо за вашу помощь ... Два много лет с момента моего последнего регулярного выражения ... :) – Francois
Добро пожаловать. Вы можете использовать: http://regexr.com/. Я считаю, что это очень полезно при отладке и понимании выражений регулярных выражений. – mymo
Не полагайтесь на regexr для тестирования регулярных выражений .NET, он не поддерживает синтаксис .NET regex. Проверьте '[\ w - [_]] +' в regexr и [regexstorm] (http://regexstorm.net/tester) с 'new_word' –