お世話になります。
正規表現で0以上9以下の同じ数字が4連続するものを表現したい場合、愚直に
0000|1111|2222|3333|4444|5555|6666|7777|8888|9999
とすればできますが、格好悪いのでよりスマートな書き方がないか探しています。
0{4}|1{4}|2{4}|3{4}|4{4}|5{4}|6{4}|7{4}|8{4}|9{4}
より綺麗な書き方ってできないものでしょうか。
思いついた方は返信ください。
よろしくお願いいたします。
正規表現で連続した数字を表現したい
Re: 正規表現で連続した数字を表現したい
一応,.NET Frameworkのように,\dをUnicodeクラスNdと等価とするライブラリもあるため,注意が必要です。
このあたりは,ライブラリの仕様に依存します。
そもそもキャプチャ機能の有無,量指定子の有無がライブラリに依存しますが……。
ref) ideoneでの実行例 全角・半角形領域の数字に関しても\dがマッチしていることがわかる
このあたりは,ライブラリの仕様に依存します。
そもそもキャプチャ機能の有無,量指定子の有無がライブラリに依存しますが……。
ref) ideoneでの実行例 全角・半角形領域の数字に関しても\dがマッチしていることがわかる
Re: 正規表現で連続した数字を表現したい
「後方参照」という便利なものがあるんですね。
多分これが一番スマートな気がします。
たしかに、ライブラリに限らず、正規表現を使えるツールでも同じ記述でもヒットしたりしなかったりしてハマることがありますね。YuO さんが書きました:一応,.NET Frameworkのように,\dをUnicodeクラスNdと等価とするライブラリもあるため,注意が必要です。
このあたりは,ライブラリの仕様に依存します。
サクラエディタだと[^[0-9]]でもヒットしたけど
javascriptのsearchでは [^0-9] でないとヒットしない、とか。。。