質問: C#の正規表現にて @"[a-z0-9.!#$%&'*+/=/^-{|}~-]+@[a-z0-9-]+(?:¥.[a-z0-9-]+)*" これの表現内に出てくる!
回答: []の中は、-, ], \, 先頭の^以外は、エスケープする必要はないので、 [a-z0-9.!#$%&'*+/=/^-{|}~-]は、 a〜z または0〜9 または. または! または# または$ または% または& または' または* または+ または/ または= または/ または^ 〜 { すなわち^、_、`、a〜z、{ または| または} または~ または- ということになるのではないかと思います。 ハイフンをエスケープしていないので、範囲指定とみなされてしまい、_や、`にもマッチしてしまうと思います。意図していなかったのでは?最後のハイフンも多分本当はエスケープしたほうが良い気がしますが、1つ目のハイフンが効かなかったので試行錯誤で最後につけてみたらたまたま効いたのではないかと推察します。 _や`にマッチさせる意図がないのであれば、前半部分は、 [a-z0-9.!#$%&'*+/=^¥-{|}~] でよいのではないかと思います。