只保留qstring中负号、小数点、百分号和换行符和数字
时间: 2024-01-30 10:02:07 浏览: 88
您可以使用正则表达式来实现这个功能。以下是一个示例代码:
```cpp
QString input = "-123.45%\n6.7";
QRegExp rx("[^\\d\\-\\.\\%\\n]");
QString output = input.remove(rx);
// output: "-123.45%\n6.7"
```
这里,`QRegExp` 表示一个正则表达式对象,它的参数是一个正则表达式,`[^\\d\\-\\.\\%\\n]` 表示除了数字、负号、小数点、百分号和换行符之外的任何字符。`remove()` 方法可以将字符串中匹配正则表达式的字符都删除掉,最后返回处理后的字符串。
相关问题
只保留qstring中负号、小数点、百分号和除句末的换行符和数字
您可以使用正则表达式来实现这个功能。以下是一个示例代码:
```cpp
QString input = "-123.45%\n6.7\n";
QRegExp rx("[^\\d\\-\\.\\%\\n$]");
QString output = input.remove(rx);
// output: "-123.45%\n6.7"
```
这里,`QRegExp` 表示一个正则表达式对象,它的参数是一个正则表达式,`[^\\d\\-\\.\\%\\n$]` 表示除了数字、负号、小数点、百分号和最后一个换行符之外的任何字符。`$` 表示字符串的结尾。`remove()` 方法可以将字符串中匹配正则表达式的字符都删除掉,最后返回处理后的字符串。
qt中如何将Qstring中的符号去除只保留汉字英文和数字和换行符
可以使用正则表达式来去除QString中的符号,只保留汉字、英文和数字以及换行符。以下是一个示例代码:
```c++
#include <QRegExp>
QString originalString = "Hello, Qt 你好!123#¥%……&*()\nThis is a test.\n";
QRegExp regExp("[^\u4e00-\u9fa5a-zA-Z0-9\n]"); // 匹配非汉字、英文、数字和换行符的字符
QString filteredString = originalString.replace(regExp, "");
// filteredString 的值为 "HelloQt你好123\nThis is a test.\n"
```
在这个示例中,使用`QRegExp`类创建了一个正则表达式对象,该正则表达式匹配非汉字、英文、数字和换行符的字符。然后使用`QString`的`replace()`函数将匹配到的字符替换为空字符串,即去除这些字符。最终得到的`filteredString`即为只保留汉字、英文、数字和换行符的字符串。
阅读全文