Как не совпадать с двойными пробелами? - PullRequest
1 голос
/ 14 декабря 2011

Пока все хорошо, но я бы хотел сопоставить "Health and Beauty"
вместо "Health and Beauty _ _ _" (конечные шесть пробелов)

var a = Regex.Match("Health and Beauty      08/05/11 TO 08/11/11",
    @"^(?<dept>.*)" +
    @"(?<startdate>[0-9]{2}/[0-9]{2}/[0-9]{2})\s+TO\s+" +
    @"(?<enddate>[0-9]{2}/[0-9]{2}/[0-9]{2})$").Dump();

Я пробовал смотреть в будущее негативно, но. * Продолжал соответствовать всему.

@"^(?<dept>.*(?!(\s\s)))\s+"  // should be "not followed by two spaces

У меня есть только возможность сопоставлять и извлекать, а не заменять (C # для примера.)

1 Ответ

4 голосов
/ 14 декабря 2011

Измените @"^(?<dept>.*)" на не жадный, и сопоставьте на лишних пробелах после:

@"^(?<dept>.*?)\s*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...