Тестван Regex онлайн, не работи в C#?
Здравейте колеги, започнах да решавам Regex и тъкмо бях щастлив, че си направих Pattern-ни сравнително бързо за 2-те задачки от упражненията и като ги пуснах в C# не работеха. Не мога да открия защо, моля някой да ми помогне.
Задача 1: http://pastebin.com/YuSRG4jF
Задача 2: http://pastebin.com/4NAcbmzp
Благодаря ви!
Поправих ги тези неща и забелязах, че поради някаква причина String-a ми се беше счупил и той като съм го слагал, сега проработи :)
Но на задачата Match Phone Number имам един въпрос, който не мога да си обесня. В условието се казва "Ensure that before the '+' sign there is either a space or the beginning of the string", което мисля, че го спазвам със следния Код, защото при проверката ми ето тук https://regex101.com/r/zW4iC7/1, показва че работи както уж се иска от задачата. Но когато принтирам на конзолата се появява следния резултат:
(Празен ред)
59-2-222-2222
+359 2 222 2222
+359-2-222-2222
Press any key to continue . . .
И не мога да разбера, защо се чупи така.
Добре аз имам някакъв напредък, окрих, че не съм си модифицирал String-a в C# и сега имам следния резултат при
String phoneNumber = @" +359-2-222-2222, +359/2/222/2222, +359-2 222 2222, +359 2-222-2222, +359-2-222-222, +359-2-222-22222,
+359 2 222 2222, +359-2-222-2222";
string pattern = @"^|[+359]+(-| )[2]\1[\d]{3}\1[\d]{4}\b";
(Празен ред отново, не знам от къде идва)
+359-2-222-2222
+359 2 222 2222
+359-2-222-2222
НО
Ако изтрия Space-a в началото на PhoneNumber string-a @"+359-2-222-2222, +359/....." ми изкарва само това:
(Празен ред отново, не знам от къде идва)
359-2-222-2222
+359 2 222 2222
+359-2-222-2222
Нали в pattern му казвам: "^" което означава началото на всеки нов ред, "|" или... . Пробвах да го направя "^|\s....." за да окаже, началото на всеки нов ред или space и след това хвани еди кое си, но по този начин първия номер ми го изпуска и изкарва само последните 2 резултата. Някаква идея какво и къде греша?
Заповядай '[\+359]{4}[\-|\/| ][\d]+[\/|\-| ][\d]+[\/|\-| ]{1}[\d]+'