[解決済み] 正規表現によるIPv4アドレスの検証
2022-03-07 10:20:34
質問
IPv4検証のための効率的な正規表現を取得しようとしていますが、あまりうまくいきません。一時期は
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}
しかし、それはいくつかの奇妙な結果を生成します。
$ grep --version
grep (GNU grep) 2.7
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.168.1.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555
192.168.1.2555
すでに質問され回答されていないか検索してみましたが、他の回答は単に1~3の数字の4つのグループを決定する方法を示しているか、私にはうまくいかないようです。
どのように解決するのですか?
すでに答えは出ているのですが、元のアプローチのどこが悪かったのか気になる方のために念のため説明すると、交互配列の周りに括弧が必要で、そうしないと
(\.|$)
は200未満の場合のみ必要です。
'\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b'
^ ^
関連
-
[解決済み] 名前が''の無効なフォームコントロールはフォーカスされない
-
[解決済み] 正規表現の冒頭の感嘆符と末尾のドル記号は何ですか?
-
[解決済み] 正規表現で「逆マッチ」を行うには?
-
[解決済み] sedで行全体を置き換えるには?
-
[解決済み] Pythonのstdlibを使ったローカルIPアドレスの検索
-
[解決済み] grepで1つの単語を除外するにはどうすればよいですか?
-
[解決済み】特定の拡張子を持つファイルのみを再帰的にgrepするにはどうすればよいですか?
-
[解決済み】グローバルフラグを持つRegExpが間違った結果を出すのはなぜですか?
-
[解決済み】RegExpですべての特殊文字を削除する
-
[解決済み] jQueryとregexを使ったメールアドレスの検証
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Vimで正規表現に置換すると、`E488: Trailing characters`が発生します。
-
[解決済み] MACアドレスの正規表現とは何ですか?
-
[解決済み] bashスクリプトで「cd `echo $0 | sed 's/(.***)\/.*/**1/'` 」はどうするのですか?
-
[解決済み] Apache LocationMatch Regex
-
[解決済み] Kibanaクエリの完全一致
-
[解決済み] Regex オプション文字にマッチさせる方法
-
[解決済み] 正規表現[^ΘdΘs]と[ΘdΘs]の違いは何ですか?
-
[解決済み] 正規表現で「逆マッチ」を行うには?
-
[解決済み] RegexにおけるOR条件
-
[解決済み] アドレスフィールド検証のための正規表現