正規表現でドット(.)、アンダースコア(_)、ダッシュ(-)を検出する方法[閉じる]

正規表現でドット(.)、アンダースコア(_)、ダッシュ(-)を検出する方法[閉じる]

IPアドレスまたはIPホスト情報を含むフォルダに関する情報を処理する必要があります。

実際のURL、フォルダ名、データファイルなど、IPアドレスを識別(一致)できるパターンが必要です。例えば

127.0.0.10
127-0-0-10
127_0_0_10

すべて一致する必要があります。以上。 Bashでこれを行うことができるトルクナイザー正規表現はありますか?

答え1

次の正規表現は必要な操作を実行するようです。

\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[\-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[\-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b

$ cat test.txt
127.0.0.10
127-0-0-10
127_0_0_10
256_5_10_1
10-10-100-1
192.168.100.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])[-._](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b' test.txt
127.0.0.10
127-0-0-10
127_0_0_10
10-10-100-1
192.168.100.1

バラよりhttps://www.regular-expressions.info/ip.html正規表現の説明。私は単に、またはと一致するように\.sを修正しました。[-._]-._

関連情報