04. Treasure Map има ли решение с един regex
https://judge.softuni.bg/Contests/Practice/Index/755#3 Възможно ли е да се мачне правилно със само един регекс?
https://judge.softuni.bg/Contests/Practice/Index/755#3 Възможно ли е да се мачне правилно със само един регекс?
Възможно е, но е доста грозен патърна :)
Ето, пробвай:
@"\![^!#]*?\b(?<street>[A-Za-z]{4})\b[^!#]*[^\d](?<number>\d{3})-(?<password>\d{6}|\d{4})(?:[^\d!#][^!#]*)?\#|\#[^!#]*?\b(?<street>[A-Za-z]{4})\b[^!#]*[^\d](?<number>\d{3})-(?<password>\d{6}|\d{4})(?:[^\d!#][^!#]*)?\!"
Ако го тестваш в regex101.com ще ти се кара, защото иска имената на групите да са уникални, но runtime си работи с едни и същи имена. Можеш да не използваш наименовани групи, но тогава си усложняваш останалия код.
Успех!
Мерси за петърна, оптимизирах го малко, помогна ми, че бая се бях забил с тоя регекс:
@"(!|#)[^!#]*?\b(?<street>[A-Za-z]{4})\b[^!#]*(?<!\d)(?<number>\d{3})-(?<password>\d{6}|\d{4})(?!\d)[^!#]*?(?!\1)(#|!)"
Поздрави!
P.S Така не се кара и в regex101.com