QRegExp网址模式

时间:2012-09-05 18:04:59

标签: c++ regex qt qregexp

我正在尝试使用下面的模式匹配存储在变量中的某些文本的Google网址。

网址使用双引号

QRegExp regExp;
regExp.setPattern("http://www.google.com/(.*)");

我设法匹配网址,但它不一致地匹配其后面包含的所有文字。我尝试使用类似下面的类似变体,但它们似乎不起作用。

regExp.setPattern("http://www.google.com/(.*)\"is"); 
regExp.setPattern("http://www.google.com/^(.*)$\"");

任何有助于获得仅与网址匹配的正则表达式的帮助。

提前致谢

2 个答案:

答案 0 :(得分:1)

您是否需要/想要使用QRegExp?

您最有可能使用QUrl。

答案 1 :(得分:0)

即使我们不可能知道文本中的网址是什么(引号?括号?空格?),我们可以通过尝试对不能成为其一部分的字符进行否定匹配来创建更好的正则表达式网址:

QRegExp regExp;
regExp.setPattern("http://www.google.com/([^()\"' ]*)");

然后你只需要为这个负面字符类添加更多可能的字符。