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