获取一个qstring前两个字符然后判断是否为汉字数字或英文,如果不是就去掉不是汉字数字或英文的字符
时间: 2024-02-24 11:57:25 浏览: 130
可以使用`QString`的`mid()`方法获取前两个字符,然后判断是否为汉字、数字或英文,如果不是,则使用`QRegularExpression`去掉不合法的字符。示例代码如下:
```c++
QString str = "1@#23中国";
QString firstTwoChars = str.left(2); // 获取前两个字符
QChar firstChar = firstTwoChars[0];
QChar secondChar = firstTwoChars[1];
if (firstChar.category() != QChar::Letter_Uppercase && firstChar.category() != QChar::Letter_Lowercase &&
firstChar.category() != QChar::Number_DecimalDigit && firstChar.category() != QChar::Number_Other) {
str = str.mid(1); // 去掉第一个不合法的字符
}
if (secondChar.category() != QChar::Letter_Uppercase && secondChar.category() != QChar::Letter_Lowercase &&
secondChar.category() != QChar::Number_DecimalDigit && secondChar.category() != QChar::Number_Other) {
str = str.left(1) + str.mid(2); // 去掉第二个不合法的字符
}
QRegularExpression reg("[^a-zA-Z0-9\u4e00-\u9fa5]+"); // 匹配非汉字数字英文的字符
str = str.replace(reg, ""); // 去掉非汉字数字英文的字符
```
这样,`str`就会被去掉所有非汉字数字英文的字符,并且确保前两个字符以汉字数字英文开头。如果前两个字符中有不合法的字符,就会依次去掉。
阅读全文