0
入力がURLかプレーンなファイルパスかどうかを検出しようとしています。私は文字列内のhttp://かwwwをチェックするだけで十分です。QString :: contains(QRegExp)は何を返すべきですか? RegExp内でポジションメタ文字を使用できますか?
私はQString :: contains(QRegExp)を試していますが、期待しているものが返されないことがわかりました。それがない場合は、//、または1:最初のパラメータは、WWWまたはhttpで始まっていない場合には0を印刷する必要があります
#include <QtCore>
#include <iostream>
int main(int argc, char *argv[]){
std::cout << "true: " << true << std::endl;
std::cout << "false: " << false << std::endl;
if (argc > 1)
std::cout << "input: " << (QString(argv[1]).contains(QRegExp("^[(http://)(www)]"))) << std::endl;
return 0;
}
:私はそれが偽のだということを証明するためのスニペットを作りました。しかし、これは私の結果です:
$ ./test
true: 1
false: 0
$ ./test foobar
true: 1
false: 0
input: 0
$ ./test www.google.com
true: 1
false: 0
input: 0x7fffa68f72df
$ ./test ww_foobar.com
true: 1
false: 0
input: 0x7fff177ba65f
何が起こっているのですか?
文字の一致にのみ使用する必要があります。文字列の一致のために、括弧の中にパイプを使用する必要があります。それはおそらくエラーです。私がそれを受け入れることができるように、あなたの答えを修正してください(それは切り捨てられているようです)。 – Spidey
@Spidey Done、私は思う:) – FailedDev