Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вырезать из строки


Автор: Moid 22.1.2008, 18:48
как с помощью регулярного выражения узнать текст после последнего слеша из адреса("C:\F1\f2\folder.exe")
Нужно получить "folder.exe"?

Делаю так:

Код

static string CutStr(string str)
        {
            Match m;
            //m = Regex.Match(str, @"([A-Za-z0-9_:{\\}]*)");
            m = Regex.Match(str, @"\\+([A-Za-z0-9_.]+)");

            string S = m.Value;
            return "";//m.Groups["endstr"].Value;
        }



Выдерает строку после первого слеша: "F1"

Добавлено @ 18:53
Дошло...

(str, @"\\+([A-Za-z0-9_.]+)$");

Автор: mr.DUDA 23.1.2008, 10:08
Код
using System.IO;

...

        str = Path.GetFileName(str);

Автор: lankin 24.1.2008, 12:34
Вопрос: а как мне из выражения "folder.exe" убрать ".exe"?

Автор: Moid 24.1.2008, 12:48
можно так:
Код

Match r = Regex.Match(Convert.ToString(file),@".+\.");
string s = Convert.ToString(r).Substring(0,r.Length-1);


не до конца регулярными, но проблему решит.

Автор: mr.DUDA 24.1.2008, 20:22
Moid, ну есть же класс Path, зачем придумывать велосипед.
Код
Path.GetFileNameWithoutExtension(str);

Автор: Moid 24.1.2008, 20:25
Именно в моем случае нужно было использовать рег. выр.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)