【问题标题】:Case insensitive search mode with QRegularExpression使用 QRegularExpression 的不区分大小写的搜索模式
【发布时间】:2019-02-18 23:26:59
【问题描述】:

这个问题是这个的扩展问题: How to replace QRegExp in a string?

在那个问题上,问题就解决了。但现在我需要使用 QRegularExpression 而不是 QRegExp。我应该如何转移托比·斯佩特的答案?

【问题讨论】:

  • 你试过什么?特别是,是什么让您认为在这种情况下简单地将QRegExp 替换为QRegularExpression 将不起作用(附带条件是将Qt::CaseInsensitive 更改为QRegularExpression::CaseInsensitiveOption)?
  • @G.M.:谢谢你的回答,其实这就是我要找的。我不知道如何在QRegularExpression 中替换Qt::CaseInsensitive。 :)
  • 但是 G.M.确切地说用什么替换它:QRegularExpression::CaseInsensitiveOption,它的类型是QRegularExpression::PatternOption
  • @KubaOber:是的,他的回答已经解决了我的问题。
  • 如果以下答案适合您,请考虑完成问题。

标签: regex qt qregexp qregularexpression


【解决方案1】:

QRegExp 不区分大小写的搜索模式通过Qt::CaseInsensitive 启用。

当你使用基于PCRE正则引擎的QRegularExpression时,你可以使用QRegularExpression::CaseInsensitiveOption

模式应该以不区分大小写的方式匹配主题字符串。此选项对应于 Perl 正则表达式中的 /i 修饰符。

【讨论】:

    【解决方案2】:

    在python中是:

    re = QRegularExpression(pattern, QRegularExpression.CaseInsensitiveOption | QRegularExpression.DotMatchesEverythingOption)
    
    

    如果你需要 2 个选项

    re = QRegularExpression(pattern, QRegularExpression.CaseInsensitiveOption | QRegularExpression.DotMatchesEverythingOption)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2011-01-02
      • 2013-02-17
      • 2015-12-10
      相关资源
      最近更新 更多