正規表現でasciiコード文字クラス

2018-12-05 22:14:34 | 正規表現
色々やり方あると思いますが、x0020-x007eまでに制限したい場合は、
これが一番わかりやすいと思う。
[0-9a-zA-Z -/:-@[~]
hex指定でもいいと思うが、コード見れば何したいか想像つく。

ちなみに-指定で0-9,a-zはOKだが、:-@は気持ち悪いなんて指摘が会社で
あったけど、指摘者の話によると、0-9,a-zは大抵想定通りの順番で並びを保持しているからOK
なんだとか、上手くいくのはたまたまだとか笑

[0-9]のハイフンは
オライリーの正規表現クックブックによると、

「ハイフン(-)は2個の文字の間に配置されると範囲を形成します。文字クラス内の文字範囲はハイフン
の直前の文字と直後の文字の文字コードがその間の数字になっている全ての文字を含みます」

ってことだから、a-zと:-@の指定は文字コードの順番を利用している指定方法という点では全く
同じ意味。指摘者の知識があいまいな故の指摘としか思えない。

コメントを投稿