QT——正则表达式

来源:互联网 发布:织梦cms首页轮播图 编辑:程序博客网 时间:2024/05/27 21:50

1、构造函数:QRegExp::QRegExp(const QString & pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, PatternSyntax syntax = RegExp)

/* 用给定的 pattern 构造一个正则表达式,如果语法模式syntax 是Wildcard,pattern必须使用通配符,默认的syntax(语法)是 RegExp,pattern大小写敏感,cs 是 Qt::CaseInsensitive */

------------------------------------------------------------

2、正则表达式验证器构造函数:QRegExpValidator(const QRegExp & rx, QObject * parent = 0)

/* Constructs a validator with aparentobject that accepts all strings that match the regular expressionrx.(接受和正则表达式rx匹配的所有字符串)*/

------------------------------------------------------------

3、Example of use:

// regexp: optional '-' followed by between 1 and 3 digits
QRegExp rx("-?\\d{1,3}");
QValidator *validator = new QRegExpValidator(rx, this);
QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);

4、基本语法

1)一元字符 
.  匹配任意单个字符。例如:1.3 可能是1.  后面跟任意字符,再跟3 
^  匹配字符串首。例如:^12可能是123,但不能是312 
$  匹配字符串尾。 例如:12$可以是312,当不能是 123 
[] 匹配括号内输入的任意字符。[123]可以为1, 2 或3 
*  匹配任意数量的前导字符。 例如, 1*2可以为任意数量个1(甚至没有), 后面跟一个2 
+  匹配至少一个前导字符。 例如, 1+2必须为一个或多个1,后跟一个2 
?  匹配一个前导字符或为空。例如 1?2可以为2或这12

----------------------------------------------------------------------------

2)通配符模式 : QRegExp::setPatternSyntax(QRegExp::Wildcard);可以将元字符设置为统配模式。在统配模式下,只有3个元字符可以使用,功能没有变化.。

?   匹配任意单个字符。 例如:1?2可以为1,后面跟任意单个字符, 再跟2 
*   匹配任意一个字符序列。 例如:1*2, 可以为1,后面跟任意数量的字符,再跟一个2 
[]  匹配一个定义的字符集合。 例如: [a-zA-Z.]可以匹配 a到z之间任意一个字符, [^a]匹配除小写a以外的字符。

3)转义序列 
.   匹配”.” 
^  匹配”^” 
$   匹配”$” 
[ 匹配"[" 
] 匹配”]” 
*   匹配”*” 
+   匹配”+” 
?   匹配”?” 
制表符号 
换行符号 
回车符 
s   任意空格 
xnn 匹配16进制为nn的字符 
nn  匹配8进制的nn字符 


0 0
原创粉丝点击