【问题标题】:Regular Expression for text in between tags标签之间文本的正则表达式
【发布时间】:2012-01-18 21:11:27
【问题描述】:

我有一个需要解析的 QString。这个 QString 是一个从 URL 获得的 QNetworkReply 对象。

        <label id='Today_LastSale1'>$&nbsp;21.2401</label>

我需要来自 QString 的值 21.2401。

我试过这个。

       QRegExp rx("<label id='Today_LastSale1'>$&nbsp;(\\d)</label>");

但它返回 -1。在这方面需要帮助。

提前致谢!

【问题讨论】:

    标签: qstring qregexp


    【解决方案1】:

    您可以尝试删除非数字和“。”字符串中的字符。尝试用这个表达式替换正则表达式:"[^0-9\.]"

    代码

    QRegExp rx("[^0-9\\.]");
    yourString.replace(rx, "");
    

    【讨论】:

    • 感谢您的回复!我试过 QRegExp rx("");但它似乎不起作用!
    • 这段代码用空字符串替换每次出现的模式 [^0-9\\.] 并返回对字符串的引用?你能解释一下吗?
    • @user1065969, "^" 否定表达式。所以 "[^0-9\\.]" 将替换除数字 [0-9] 或 "." 之外的任何内容