Подтвердить что ты не робот

Регулярное выражение "^ [a-zA-Z]" или "[^ a-zA-Z]"

Есть ли разница между ^[a-zA-Z] и [^a-zA-Z]?

Когда я проверяю С#,

Regex.IsMatch("t", "^[a-zA-Z]")  // Returns true (I think it correct)

Regex.IsMatch("t", "[^a-zA-Z]")  // Returns false

Существует множество веб-сайтов, использующих [^a-zA-Z] для алфавита. Я не уверен, какой из них правильный ответ.

4b9b3361

Ответ 1

Да, первое означает "сопоставить все строки, начинающиеся с буквы", второе означает "соответствовать всем строкам, которые содержат небукту". Каретка ( "^" ) используется двумя разными способами: одна для сигнализации начала текста, одна для отмены совпадения символов внутри квадратных скобок.

Ответ 2

^[a-zA-Z] означает любой a-z или A-Z в начале строки

[^a-zA-Z] означает любой символ, который НЕ является a-z ИЛИ A-Z

Ответ 3

Есть разница.

Когда символ ^ появляется за пределами [], совпадает с началом строки (или строки). Когда символ ^ появляется внутри [], он соответствует любому символу, который не отображается внутри [].

Ответ 4

^ вне класса символов ( "[a-zA-Z]" ) отмечает, что это оператор "начинается с".
^ внутри символа отрицает указанный класс.

Итак, "^ [a-zA-Z]" переводится в "начинается с символа из az или AZ", а "[^ a-zA-Z]" переводится в "не является либо az, либо AZ"

Вот краткая ссылка: http://www.regular-expressions.info/reference.html