2

我正在尝试使用以下模式从存储在变量中的某些文本中匹配 google url。

网址使用双引号

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

我设法匹配了 url,但它意外地匹配了它后面包含的所有文本。我尝试过使用类似下面的变体,但它们似乎不起作用。

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

获得仅匹配 url 的正则表达式的任何帮助。

提前致谢

4

2 回答 2

1

您是否有理由需要/想要使用 QRegExp?

您最有可能使用 QUrl。

于 2012-09-05T18:14:53.823 回答
0

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

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

然后你只需要在这个否定字符类中添加更多可能的字符。

于 2012-09-05T18:15:47.377 回答