-
创建QRegExp对象: 你可以通过不同的方式创建
QRegExp
对象,例如使用一个正则表达式字符串。QRegExp regExp("a*b"); // 匹配任何数量的 'a' 后面跟着一个 'b'
-
设置和获取正则表达式: 你可以设置一个新的正则表达式,也可以获取当前的正则表达式。
regExp.setPattern("x*y"); // 设置新的正则表达式 QString pattern = regExp.pattern(); // 获取当前正则表达式
-
匹配操作: 使用
QRegExp
对象来检查一个字符串是否与正则表达式匹配。QString text = "aaaab"; bool isMatch = regExp.exactMatch(text); // 检查是否完全匹配
-
捕获组: 正则表达式中的括号
(
和)
定义了捕获组,你可以使用它们来提取字符串的子部分。QRegExp regExp("(\\d{4})-(\\d{2})-(\\d{2})"); // 匹配日期格式 YYYY-MM-DD regExp.exactMatch("2024-07-09"); // 返回 true QString year = regExp.cap(1); // 提取年份 "2024"
-
搜索和定位: 你可以在更长的文本中搜索匹配项,并且获取匹配项的位置。
QString text = "Item1: aaab, Item2: xxxb"; int pos = 0; while (regExp.indexIn(text, pos) != -1) { QString match = regExp.cap(0); // 获取整个匹配项 QString firstCap = regExp.cap(1); // 获取第一个捕获组 pos = regExp.pos() + 1; // 更新搜索位置 }
-
替换操作: 使用
QRegExp
来替换文本中的匹配项。QString text = "The rain in Spain falls mainly on the plain."; QString replaced = text.replace(QRegExp("ain"), "ane"); // 替换 "ain" 为 "ane"
-
使用QRegExpValidator:
QRegExpValidator
是一个验证器,可以用来限制QLineEdit
或其他输入字段的输入格式。QLineEdit *lineEdit = new QLineEdit; QRegExp regExp("^\\d{3}-\\d{2}-\\d{4}$"); // 匹配格式 XXX-XX-XXXX lineEdit->setValidator(new QRegExpValidator(regExp, lineEdit));
02-16
8736