【问题标题】:QRegExp Pattern For URLsURL 的 QRegExp 模式
【发布时间】:2012-09-05 18:04:59
【问题描述】:

我正在尝试使用以下模式从存储在变量中的某些文本中匹配 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 的正则表达式的任何帮助。

提前致谢

【问题讨论】:

    标签: c++ regex qt qregexp


    【解决方案1】:

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

    您最有可能使用 QUrl。

    【讨论】:

    • 感谢您的建议,我会研究一下,因为 RegExp 看起来很神秘
    • 我更喜欢这种解决方案,要获取与该正则表达式匹配的 URL 部分,您只需执行类似 QUrl(url_string).path() 的操作
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2017-10-02
      • 1970-01-01
      相关资源
      最近更新 更多