程序员

正则表达式初级使用

2018-05-16  本文已影响28人  那就远走

秀英语 正则表达式:Regular Expression

是啥:

学习工具

基础

中级难度

李栓蛋飞飞,王花花追追

==(.+)== 飞飞, ==(.+)== 追追

一组(.任意字符+出现一次或多次)后面是 “飞飞,”

一组(.任意字符+出现一次或多次)后面是 “追追”。

在控制台$1 = (第一组) $2 = (第二组)。

替换功能: ==$2==飞飞,==$1==追追。

# 移动
13711231000
13822212999
18289993000
18398754000
# 联通
13112241000
# 电信
17722232000

找到移动号,拿到后4位:

==1(?:37|38|82|83)\d{4}(\d{4})==

1开头(?:37或38|82|83) \d{4}中间是4位数字 (\d{4})最后4位是数字,且分为一组

(?:只是摘出来,可以理解为分组但是不存在变量里)

最后$1 为后4位

1000元
100元
199刀
234镑

正确定预查:找到 “n元” 不要元,只要确切数字n

==\d+(?=元)== \d数字 +出现一次或多次 (?=元)末尾以元结束但是不要这一组

正否定预查:找到 “n其他不是元的货币”,不要货币单位,主要确切数字n

==\d+(?!元|\d)== \d数字 +出现1↑次 (?!元|\d)不是元或者数字结尾的,同时不要这一组。

tips:正否定预查的时候 , 否定条件(?!条件|或后面写前面的肯定条件\d)

¥1000
$100
$199
€234

反向肯定预查:找人民币¥开头的,只要数字,不要符号

==(?<=¥)\d+==

(?<=¥)以人民币开头 \d+后面是1个或多个数字的

反响否定预查:找不是¥开头的,而是美元$或者欧元€开头的,只要数字

==(?<!¥|\d)\d+==

(放前面 ?后面有个<)

上一篇下一篇

猜你喜欢

热点阅读