【问题标题】:Qt remove regular expression from stringQt从字符串中删除正则表达式
【发布时间】:2012-09-07 17:00:27
【问题描述】:

我有一个 QString,已将“=”和“”替换为“”。现在我想编写一个正则表达式,它将删除某个字符串的每次出现,然后立即删除包含 1 到 2 个字符长数字的括号。 例如:“mat(1) = 5, mat(2) = 4, mat(3) = 8” 将变为“5 4 8”

这就是我目前所拥有的:

text = text.replace("=", " "); 
text = text.replace(",", " "); 
text = text.remove( QRegExp( "mat\([0-9]{1,2}\)" ) );

正则表达式不正确,我该如何修复它以执行我想要的操作?谢谢!

【问题讨论】:

    标签: qt qstring qregexp


    【解决方案1】:

    您需要为 C++ 字符串文字转义反斜杠:

    text = text.remove( QRegExp( "mat\\([0-9]{1,2}\\)" ) );
    

    【讨论】:

    • 这对我不起作用。我原来的反斜杠就是为了这个目的。你试过这个,它奏效了吗?
    • 刚刚意识到我错了!这确实有效,我只需要确保指定不区分大小写即可很好地捕捉 MAT。谢谢!
    猜你喜欢
    • 2021-01-17
    • 2014-06-20
    • 1970-01-01
    • 2022-06-28
    • 2021-09-07
    • 2017-08-24
    • 2012-03-21
    • 2018-11-20
    • 1970-01-01
    相关资源
    最近更新 更多