当前位置: 代码迷 >> 综合 >> void 默认值为QRegExp::RegExp::setPatternSyntax(QRegExp::PatternSyntax syntax) 正则的匹配
  详细解决方案

void 默认值为QRegExp::RegExp::setPatternSyntax(QRegExp::PatternSyntax syntax) 正则的匹配

热度:94   发布时间:2023-10-14 02:18:05.0

设置正则表达式的语法模式

默认值为QRegExp::RegExp

QRegExp  objA;  objA.setPatternSyntax(QRegExp::RegExp);

模式QRegExp::Wildcard 例如  r*.txt matches the string readme.txt in wildcard mode, but does not match readme.

模式QRegExp::FixedString  固定字符串意味着该模式被解释为一个普通字符串。特殊字符(如反斜杠)不需要反转义。 遇到斜杠\可以正常被正则匹配.

1:遇到输入框未输入时 可以设置为QRegExp::Wildcard. 添加* 全部匹配

 有输入时设置模式为QRegExp::FixedString  以解决输入显示匹配问题

添加if else将两中情况分开

2:QRegExp::exactMatch(const QString &str) const 精确匹配

设置输入void QRegExp::setPattern(const QString &pattern)

比如 输入的内容objA.setPattern(abcd123);

但存在的内容abcd123qaz,  或者abcd123wsx    .exactMatch(abcd123edc) 这样是匹配不到的

为了可以匹配计算好objA.setPattern(abcd123); 中abcd123的长度length.

在exactMatch(abcd123edc);   将字串abcd123edc截取左边length长度.

就可以解决匹配的问题.  比如文件名是abcd123开头的所有文件都可以匹配到.

  相关解决方案