Я работаю над программой WPF на C #, которая позволяет вручную вводить путь к каталогу. Мои пользователи не являются опытными пользователями компьютеров и могут ввести путь к файлу вместо пути к каталогу.
Я создал регулярное выражение, которое работает на веб-сайте RegExr именно так, как я хочу, но в моем коде C # происходит сбой. Он срабатывает всякий раз, когда расширение файла присутствует в конце пути, который вводит пользователь. Выражение выглядит следующим образом:
\ x2e [^ \ x5c] * $
Я пытался использовать это в
using System;
using System.Text.RegularExpressions;
using System.Windows;
public partial class MainWindow : Window
{
private void ConvertFile(object sender, RoutedEventArgs e)
{
Regex rx = new Regex("\u002E[^\x5C]*$");
}
}
Я ожидаю, что функция будет работать как положено, но вместо этого я получаю следующую ошибку:
System.ArgumentException: 'синтаксический анализ ". [^] * $" - неопределенный набор [].'
Насколько я могу судить, набор скобок, по-видимому, завершен, и я не вижу в этом ничего плохого, но он все равно не работает. Я попытался добавить и удалить дополнительную обратную косую черту, используя Unicode .
и \
, обычные .
и \
с escape-символами перед ними, разбивая строку на несколько частей и заменяя []
на ()
. Кажется, ничего не работает, и я продолжаю получать ту же ошибку.