Регулярное выражение для извлечения имени файла после символа и без расширения - PullRequest
1 голос
/ 16 июля 2009

Я ищу помощь в создании регулярного выражения, которое извлекает подстроку из строки, которая выглядит следующим образом:

test123 # Файл AMMA-TestFileName's.xml

до ...

Файл AMMA-TEstFileName

В основном удаление первого "#" и всего перед ним. Кроме того, удаляем расширение «.xml».

Любая помощь приветствуется, так как я только начинаю с регулярным выражением. Это будет использоваться в действии рабочего процесса Nintex, которое поддерживает API регулярных выражений .NET.

Ответы [ 4 ]

3 голосов
/ 16 июля 2009

Прикрепите шаблон в конце строки:

/#(.+)\.xml$/
1 голос
/ 16 июля 2009

, если вы хотите позаботиться о расширениях, кроме xml

/#(.+)\..*$/
1 голос
/ 16 июля 2009

Строка, которую вы ищете, будет в первой группе.

/#(.+?)\.xml$/

In C #

String extractFilename(String s) 
{
    Regex r = new Regex(@"#(?<filename>.+?)\.xml$", RegexOptions.Compiled);
    return r.Match(s).Result("${filename}"); 
}

правки: удалено экранирование #, добавлен спецификатор конца строки для расширения и добавлен пример C #

0 голосов
/ 16 июля 2009

Редактировать: очевидно, что это не регулярное выражение, но это быстрее, чем регулярное выражение для этого использования, поэтому я включил его.

Path.GetFileNameWithoutExtension(s.Substring(s.IndexOf('#') + 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...