Не выходит составить Regex - путь с аргументами

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Не выходит составить Regex - путь с аргументами

Сообщение Williams » 13.08.2009 (Чт) 13:11

Вариант 1: "C:\Program Files\prog.exe" /param
Вариант 2: C:\Program Files\prog.exe -param
Вариант 3: C:\prog.exe -param

Что-то никак не соображу, как все это оформить.
Код: Выделить всё
"""*([a-z0-9\.:\\\s%_\(\)\{\}-]+)*""*\s*([/a-z0-9\.:\\\s%_\(\)\{\}-]+)*"
- плох и не универсален.
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Не выходит составить Regex - путь с аргументами

Сообщение MIT » 13.08.2009 (Чт) 14:43

Попробуй такой:
Код: Выделить всё
(?i)(\")?[a-z]{1}\:\\([a-z0-9\ \\\._])+(?(1)(\"))([/a-z0-9\.:\\\s%_\(\)\{\}-]+)*(?(1)(?(3)|(\")))


Тестировалось на:
Код: Выделить всё
Вариант 1: "C:\Program Files\prog.exe" /param""
Вариант 2: C:\Program Files\prog.exe -param""
Вариант 3: "C:\prog.exe -param
Вариант 4:" C:\pro_g.exe -param
Вариант 5:  g"hjk hjk"C:\prog.exe -uninstalllm""" jhhjk
Вариант 6:  ghjk ""hjk"C:\prog.exe" -uninstalllm""" jhhjk
Вариант 7:  ghjk ""hjkC:\prog.exe" -uninstalllm"" jhhjk

Реультаты:
Код: Выделить всё
"C:\Program Files\prog.exe" /param
C:\Program Files\prog.exe -param
C:\prog.exe -param
C:\pro_g.exe -param
C:\prog.exe -uninstalllm
"C:\prog.exe" -uninstalllm
C:\prog.exe


З.Ы. Мне не нравиться только результат №5, а все остальное вроде нормально.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList