這是關於在問題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