Это вопрос о ответе, заданном в вопросе Check a string to see if all characters are hexadecimal values.Якоря в регулярных выражениях .NET.
Предложенное регулярное выражение выглядит следующим образом:
\A\b[0-9a-fA-F]+\b\Z
Теперь \A
и \Z
, кажется, что эквивалентно ^
и $
соответственно. \Z
ведет себя по-другому, тем самым он позволяет использовать символ новой строки после его сопоставления (это может быть или не предназначено).
Я не понимаю, почему используется якорь \b
«матч на границе слова». Разве это не начало/конец строки всегда границы слова?
В конечном счете, регулярное выражение может быть переписано как ^[0-9a-fA-F]$
с таким же поведением (игнорируя проблему \n
). Я что-то упускаю? Используется ли \b
для какого-то странного края?
Тестовые:
123ABC -> true
123def -> Returns true
123g -> Returns false
Да, я не могу придумать ничего, что выполнил '\ b'. – smead