2012-09-05 22 views
1

我想要使用下面的模式來匹配存儲在變量中的一些文本的谷歌URL。URL的QRegExp模式

的URL使用雙引號

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

我管理相匹配的網址,但它unwontedly匹配所有包含其後面的文本中。我曾嘗試使用類似於下面的變體,但它們似乎不起作用。

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

任何幫助獲得只與url單獨匹配的正則表達式。

在此先感謝

回答

0

即使我們無法知道文本中的URL是什麼(引號?括號?空格?),我們可以創建更好的正則表達式,方法是嘗試對不可能的字符進行否定匹配部分網址:

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

然後你只需要在這個負面字符類中添加更多可能的字符。

+0

謝謝,第一次工作,無需調整 – user866190

1

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

您可能最有可能使用QUrl。

+0

感謝您的建議,我會研究它,因爲RegExp是相當神祕的,看看 – user866190

+0

我更喜歡這個解決方案,以獲得您匹配的正則表達式的URL部分,你只是做一些事情像'QUrl(url_string).path()' – Chris