用于测试、调试和应用正则表达式(一种文本模式匹配工具)
一、正则(正则表达)
1、正则表达式简介
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个【规则字符串】,这个【规则字符串】用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
2、正则的用途
字符串匹配(字符匹配)
字符串查找
字符串替换
3、常用元字符及描述
\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。
\w 匹配构成单词的字符(字母、数字、下划线)。等价于[A-Za-z0-9_]
\W 匹配非构成单词的字符。等价于[^A-Za-z0-9_]
\p{Lower} 英文的小写字母
. 任意一个字符
X* 任意次数
X+ 一次或多次
X? 最多一次
X{n} 正好n次
X{n,} 最少n次,上不封顶
X{n,m} 最少n次,最多m次
[] 表示一个范围
[a-z]|[A-Z] [a-zA-Z] [a-z[A-Z]] a到z 或A到Z
[A-Z&&[RFG]] A到Z并且RFG (交集的意思)
“” 正则 “a?” 零宽度匹配,出现零次
边界匹配
^开头和$结尾
^h.* .*ir$ ^h[a-z]{1,3}\b
\b 一个单词的边界,空格、换行……
^[\s&&[^\n]]*\n$ 空白行,开头是空白字符但不是换行符,出现0次或多次,且紧跟着是结束的换行符
4、常用正则表达式
匹配所有数字 [0-9]+
去除所有空格 \s+
匹配任意字符:
匹配包括换行符在内的任意字符 ([\s\S]*) 同时,也可以用 “([\d\D]*)”、“([\w\W]*)” 来表示
([\s\S]*?) 加上问号 表示最短匹配
匹配时间 \d{4}-\d{2}-\d{2}
匹配时间 20\d{2}(([^\d]|/s|//|:)?\d{1,2}){5}
匹配时间 [0-9]{4}年[0-9]{1,2}月[0-9]{2}日[\s\S]*[0-9]{2}:[0-9]{2}
匹配日期 [0-9-:]+
匹配标题 [0-9|.]+[k|K|m|M|g|G|片|枚|/|L||克|l|/]+
[0-9|.]{1,10}[mm]
[0-9|.][0-9|/]{1,10}[k|K|m|M|g|G|p|片|枚|支|个|盒|条|对|/|L||克|l|/|0-9]+
名字只保留姓氏 \B.
电话加密 (?<=[0-9]{3})(.)+(?=[0-9]{4})
以XX为结束 ([\s\S]*?)(?=来源)
空格开始获取and前第一个单词 \b([^ ]+?)\b(?= and )
去除尾部空格:(\s*$)
匹配图片:
(?<=<img)(.+?)(?=>)
(?<=src=")(.+?)(\.jpg|\.png|\.gif|\.bmp|\.jpeg)
(?<=src=")(.+?)(\.jpg|\.png|\.gif|\.bmp|\.jpeg|\.JPG|\.PNG|\.GIF|\.BMP|\.GIF)
[^/]+.jpg
[^/]+(\.jpg|\.png|\.gif|\.bmp|\.jpeg)
(http:|https:|//)(.+?)(\.png|\.jpg|\.gif|\.bmp|\.jpeg)
3、常用实例
1)如果要匹配出 \ | 这两个符号要在表达式里面加下反\
示例用八爪鱼RPA正则工具演示: \\ \|
2) 表达式的开始结束表示
以什么开始不包含:(?<=开始字符)
以什么结束不包含:(?=结束字符)
表示任意字符(.+?)
二、正则工具
使用正则工具可以轻松写出正则表达式,点击打开菜单栏中的正则工具
界面如图所示,输入待转换的源文本,在右侧自动生成栏里输入起始位置和结束位置(如果没有限制可以留空),勾选是否包含开始结束,输入是否包含某个字段
下面举个简单的例子
例如,我们希望获取【八爪鱼RPA客户端更新日志】的网址链接,而部分网址链接隐藏于源码之中,那么怎么找到提取目标网址的链接呢
首先在网页内右击检查,查看网页源码内容,单击左侧图标,定位到目标元素
找到目标元素以后,右击复制元素,输入到正则工具内,确定目标网址开始和结束相邻字段,可添加【包含一个】内容
输入完成后,点击完成,生成正则表达式
点击匹配测试匹配结果,成功提取出目标网址
正则表达式应用广泛,在八爪鱼RPA中数据处理中很多指令都应用了正则表达,可以在流程中灵活运用