Простой вопрос на этот раз.
Я пытаюсь проверить, содержит ли строка символ с помощью регулярных выражений. Я думал, что это выражение имеет форму «[^ x ]», где x - это символ, которого вы не хотите видеть, но, похоже, он не работает.
Например,
Regex.IsMatch("103","[^0]")
и
Regex.IsMatch("103&","[^&]")
оба возвращают true (я бы ожидал false).
Я начал использовать "[^&]"
и подумал, что, возможно, & нужно экранировать как \ &, но, похоже, это ничего не меняет.
Идеи? Я предполагаю, что это что-то маленькое.
Кроме того, я использую .NET, так что имейте это в виду.
Edit1:
Я нашел это , но, похоже, это не отвечает на проблему, с которой я столкнулся.
Edit2:
Я хотел бы ответить на предложения Кевина и Джоэла . Эти предложения действительно были бы быстрее, но они не достигли той гибкости, которая мне нужна в этом случае, поэтому, если вы нашли этот вопрос с помощью поиска, обязательно посмотрите, соответствуют ли их ответы вашим потребностям. В моем случае регулярное выражение передается в метод проверки DataTable, который проходит по каждой строке и проверяет, что содержимое этой строки в определенном столбце соответствует RegEx, который передается. Поскольку я буду использовать этот метод повторно для нескольких других проверяемых таблиц данных я хотел бы:
- Используйте Regex, чтобы включить самый широкий диапазон проверок, и
- Всегда ищите положительное совпадение (т. Е. Вместо использования! Regex.IsMatch (ячейка, regexvariable), я хотел полагаться на возможность всегда использовать Regex.IsMatch (ячейка, regexvariable), так как большинство DataTables вызывает этот метод будет использовать положительное совпадение вместо отрицательного.
Надеюсь, это поможет.