今回c++のプログラミングの問題で、特定の文字列を正規表現を使って検出しようとしています。
c++で正規表現を使うには、regexを使うといいと書いてあったので、regexを使おうとしています。
ネットで検索したところ
string str[3] = {"int", "double[4]", "char[32]"}; // 対象文字列
regex re("(int|double|char)(\[(\d+)\])?"); // 正規表現
と書いてる文章を見つけました。
問題文では、ログのデータの中にipアドレスが入っており、指定されたipアドレスのものを検出しなければいけません。
問題文中でのipアドレスの指定の仕方が、
(1)192.168.0.1 のように、一つを指定しているものもあれば、
(2)192.168.0.* のように、ワイルドカードを用いて複数を指定しているものもあれば、
(3)192.168.[0-10].* のように、範囲を指定しているものもあります。
(1)~(3)のような形でipアドレスを指定されるので、 それにあったipアドレスをログの中から検出したいです。 正規表現の規則は、(1)~(3)の形です。 ここで、上記の対象文字列の部分に、ログのデータが入っているとすると、 この場合、正規表現の部分はどのように書くのが正しいのでしょうか? また、正規表現の(\\[(\\d+)\\])の部分がどのような意味合いになっているのかまったく理解できません。 回答の方よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/20 16:27
2016/10/20 18:22
2016/10/21 02:21
2016/10/21 02:39
2016/10/21 07:24
2016/10/21 07:32
2016/10/21 07:40