正则表达式笔记

题记:“笑来书里说,年轻人往往觉得时间还有很多,感觉不到时间总在一分一秒地过去;等他们醒悟,明白这一点,许多事情已经无能为力了。”

 

一.基本知识

正则表达式:Regular Expression,字符串操作的逻辑公式,定义规则字符串。用来匹配合法输入等操作。

常见字符表示:

 

\

转义字符

*

匹配{0, }

{n}

匹配n

^

开始

+

匹配{1, }

{n, }

至少匹配n

$

结束

?

匹配{0, 1}

{n,m}

最少匹配n次,做多匹配m

|

\b

单词边界

\f

换页

[xyz]

字符集合

\B

非单词边界

\n

换行

[^xy]

不包含字符

\cx

Control-’x’

\r

回车

[a-z]

字符范围

\d

[0,9]

\s

不可见字符[\f\n\r\t\v]

[^a-z]

不在范围

\D

非数字[^0-9]

\S

可见字符

\v \t

制表符

\w

包括下划线单词字符

\W

任何非单词字符

 

a.?跟在其他限制符(*,+,?{n}{n,}{n,m})后,表示非贪婪,尽可能少的匹配;

b.  非匹配获取

 

二.常见正则表达式

1. Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";

2. URL"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$";

3. 整数或小数:”^[0-9]+([.][0-9]+)?$”;

4. IP地址: (1-255).(0-255).(0-255).(0-255)

"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$"

 

三.其他

1. Qt RegExp

 #include <QRegExpValidator>

{

    QLineEdit *edit = new QLineEdit();

    QRegExp regex("^ [1-9] (\\. \d {2}) | 10$");

    QValidator *validator = new QRegExpValidator(regex, edit);

    edit -> setValidator(validator);

}

 

2. Js RegExp()

a. 匹配格式是否正确

只允许输入:1-10之内整数/可包含小数,不限小数点后位数

var regExp = /^([1-9](\.\d*)? ||10)$/ig;

只允许输入:-90到90之间整数/可包含小数,不限小数点后位数

var regExp = /^((-)?((\d || [1-8]\d) (\.\d*)?) || 90)$/ig;

if (regExp.test($("#input_id").val())) 

    return true;

 

var patrn=/^  $/;

if (!patrn.exec(s))

    return false; 

 

b. Replace/操作匹配到的字符串

<script language="javascript">

var reg=new RegExp("终古","g"); //创建正则RegExp对象

var stringObj="终古人民共和国,终古人民";

var newstr=stringObj.replace(reg,"中国");

alert(newstr);

</script>

 

3. 正则表达式校验软件

   https://sourceforge.net/projects/regulator/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值