オープンソース プロジェクトで警告をつぶそうとしていますが、
/[\.\,\;\:\(\)\[\]\{\}\<\>\"\'\`\~\/\|\?\!\&\@\#\s\x00-\x1f\x7f]+/
私に与えている
(irb):1: warning: character class has duplicated range
正規表現のどの部分が重複を引き起こしているかを自動的に指摘するツールはありますか?
オープンソース プロジェクトで警告をつぶそうとしていますが、
/[\.\,\;\:\(\)\[\]\{\}\<\>\"\'\`\~\/\|\?\!\&\@\#\s\x00-\x1f\x7f]+/
私に与えている
(irb):1: warning: character class has duplicated range
正規表現のどの部分が重複を引き起こしているかを自動的に指摘するツールはありますか?
ツールについてはわかりませんが、オーバーラップを見つけました: 、、および\s
が含まれているため、パーツとオーバーラップしています。\t
\f
\n
\r
\x00-\x1f
したがって、Ruby 自体に「問題」が見つかったことを知らせる方法がない限り、この正規表現を次のように記述できます (途中で不要なバックスラッシュをすべて削除します)。
/[.,;:()\[\]{}<>"'`~\/|?!&@# \x00-\x1f\x7f]+/
絶望的な状況に陥った場合は、Ruby ソースにデバッグ情報を出力して再構築することができると思います。:)これが警告がスローされる場所だと思います: