これは質問Check a string to see if all characters are hexadecimal valuesで与えられた答えに関する質問です。.NET正規表現のアンカー
提案正規表現は以下の通りです:
\A\b[0-9a-fA-F]+\b\Z
は今、\A
と\Z
はそれぞれ^
と$
と同等であるように見えます。 \Z
は、マッチングの後に改行を許すという点で、これとは異なる振る舞いをしています(これは意図しているかもしれません)。
「単語境界で一致する」アンカーが\b
である理由はわかりません。文字列の始まりと終わりは常に単語の境界ではありませんか?
最終的に、正規表現は同じ動作(後ろの\n
の問題を無視して)を使って^[0-9a-fA-F]$
と書き直すことができました。何か不足していますか?奇妙なエッジケースには\b
が必要ですか?
テストケース:非単語と単語の文字の間
123ABC -> true
123def -> Returns true
123g -> Returns false
ええ、私は '\ b'が達成していることは考えられません。 – smead