String,Regexp - Exercises, 13. задача Query Mess
Здравейте, решавам тази задача и имам нужда от помощ с патерна. Измислих този:
string partPattern = @"(\b[a-z]*)=(\b([\w]*([:\/\w\. ])*)\b)";
Който тествам с това:
login=student&password=student
field=value1&field=value2&field=value3
http://example.com/over/there?name=ferret
foo= foo&value=val&foo=5 203
foo=poo &value=valley&dog=wow
url=https://softuni.bg/trainings/coursesinstances/details/1070
https://softuni.bg/trainings.asp?trainer=nakov&course=oop&course=php
Проблемът ми е, че не ми хваща това в червеното заради интервала след =.
(По условие е дадено с + и %20 за интервал, но аз предварително ги заменям с "" и " ").
Струва ми се, че в патерна за key и value пропускаш, че от двете страни на = може да има всичко друго, освен +, %20, &, = и ?. Сега виждам, че ?,+ и %20 предварително ги разкарваш.
Но все пак си сложил само няколко символа от останалите г/д 250 символа от ASCII. Виж условието:
Letters (A-Z and a-z), numbers (0-9), the characters '*', '-', '.', '_' and other non-special symbols are left as-is.
special symbols за тази задача са само +, %20, &, = и ?