C++のReGexパターンを使用してIPv6アドレスを検証します
IPアドレスが与えられた場合、タスクはこのIPアドレスを検証し、ReGex(正規表現)を使用してIPv6であるかどうかを確認することです。 IPアドレスが有効な場合は「IPv6アドレス」を出力し、そうでない場合は「Not」を出力します。
有効なIPv4アドレスは、「XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX」の形式のIPです。ここで、各Xi桁は16進数です。たとえば、
入力-1 −
IP= “3001:0da8:82a3:0:0:8B2E:0270:7224”
出力 −
“Not”
説明 −これは有効なIPv6アドレスではないため、「Not」を返します。
入力-2 −
IP= “2001:0db8:85a3:0000:0000:8a2e:0370:7334”
出力 −
“IPv6”
説明 −これは有効なIPv6アドレスであり、「IPv6」を返します。
この問題を解決するためのアプローチ
指定されたIPアドレスがIPv6であるかどうかを確認するには、ReGexを使用します。 ReGexは、特定のパターンを定義する一連の文字を含む式です。これらのパターンをアルゴリズムで使用して、文字列のパターンと一致させることができます。入力検証にも広く使用されています。
範囲仕様 −最も簡単な方法でパターンを作成するための文字を指定できます。文字を使用して範囲を指定するには、「[]」角かっこを使用できます。
文字の指定 −上記の式は、正規表現として、aからz、「A」から「Z」、および「0」から「9」の範囲の開き角かっこと数字を示します。
[a-z], [A-Z] and [0-9].
繰り返されるパターン −式修飾子は、パターンの出現を1回以上一致させることを示唆する「+」、またはパターンの出現を0回以上一致させることを示唆する「*」にすることができます。
式[a-z]*は空白の文字列に一致します。
1回以上一致する文字のグループを指定する場合は、次のように括弧を使用できます-
[Abc]+
この問題を解決するためのアプローチは次のとおりです
-
IPアドレスを指定する文字列を入力します。
-
文字列関数validIPAddress(string IP)は、入力としてIPアドレスを受け取り、入力された文字列が有効かどうかを確認します。有効な場合は「IPv6」を返し、そうでない場合は「IPアドレスではありません」を返します。
-
IPv6アドレスの正規表現パターンを作成します。 IPv6アドレスには8つのフィールドが含まれているため、各フィールドには16進数で表される値の数字が含まれます。 IPv6アドレスは、「コロン」で区切られたXXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXXのようになります。
-
有効なIPv6アドレスは([0-9a-fA-F]){1,4})\\ :) {7}([0-9a-fA-F]){1,4})の範囲にある可能性があります最初の桁は0〜9の範囲で、2番目は16進数の英数字です。
-
同様に、2番目のフィールドの場合、最初の文字は0-9a-fA-Fの範囲になり、正規表現パターンは「[0-9a-fA-F]」になります
。
例
#include<bits/stdc++.h> using namespace std; string validIPAddress(string IP) { regex ipv6("((([0-9a-fA-F]){1,4})\\:){7}([0-9a-fA-F]){1,4}"); if(regex_match(IP, ipv6)) return "IPv6"; else return "Not"; } int main(){ string IP= “3001:0da8:82a3:0:0:8B2E:0270:7224”; string ans= validIPAddress(IP); cout<<ans<<endl; return 0; }
出力
上記のコードを実行すると、次のように出力が生成されます
Not
入力されたIPアドレスは有効なIPアドレスではないため、「Not」を返します。
-
C++でのAndroidのロック解除パターン
Android 3x3キーロック画面と2つの整数mとnがあり、mとnの値が1≤m≤n≤9の範囲にあるとします。Androidロック画面のロック解除パターンの総数をカウントする必要があります。最小m個のキーと最大n個のキーで構成されます。 ルールは次のようになります。各パターンは、少なくともm個のキーと最大でn個のキーを接続する必要があります。すべてのキーは一意である必要があります。パターン内の2つの連続するキーを結ぶ線が他のキーを通過する場合、他のキーはパターン内で事前に選択されている必要があります。選択されていない、許可されていないキーをジャンプします。使用するキーの順序が重要です。
-
Python Regexを使用して、特定の文字列内の「1(0+)1」のすべてのパターンを検索します
このチュートリアルでは、正規表現を使用して、文字列内の1(0 + 1)のすべての出現を検出するプログラムを作成します。 。 Pythonには、正規表現を操作するのに役立つreモジュールがあります。 1つのサンプルケースを見てみましょう。 Input: string = "Sample 1(0+)1 string with 1(0+)1 unnecessary patterns 1(0+)1" Output: Total number of pattern maches are 3 ['1(0+)1', '1(0+)1', '1(0+