当前位置:网站首页>OpenRefine中的正则表达式
OpenRefine中的正则表达式
2022-08-04 05:24:00 【superchao1982】
Regular Expression(正则表达式)
----------------------------------------------------------------
在GREL函数(replace/find/match)中使用正则表达式时,需要用//将正则表达式引起来。
正则表达式能够定义一个文本样式,而不需要指定一系列精确的文本集。
通过建立一些字符集来表示需要查找的内容,与数量符,锚符,可选符和组符配合使用就可以满足你的查找需求。
----------------------------------------------------------------
#字符集# ————表示被匹配的字符是什么
正则表达式使用字符集(字母,数字,空格等)来查找字符
. : 代表除换行符以外的任意字符
\d: 代表任何数字,每次都写[0-9]可能比较麻烦,可以用\d来表示任意数字
\D: 代表非数字,可以是字母或者其他字符,等价于[^0-9]
\w: 代表一个任何字母、数字或下划线的字符,注意其不包括空格
\W: 代表一个不是字母、数字或下划线的字符
\s: 代表一个空白符,包括空格、Tab健和换行符
\S: 代表不是空白符的任意字符
\n: 代表换行符
--1: a.a.a ---> 匹配到至少连续出现三次字母a,并且两个a 之间有一个任意字符,例如: dulcamara/alabaster/salamander
--2: 19\d\d ---> 匹配到所有20世纪的年份
--3: 19.. ---> 匹配到所有19开头的四位字符,除了所有20世纪的年份外,还包括19th/19M$等
\: 转义符,表示特殊含义的字符,例如: 真实的.可以表示为\.,反斜杠\可以表示为\\,[可以表示为\[,]可以表示为\]
--1:[\[\]] ---> 匹配文本包含左方括号[或者右方括号]的字符串
--2: \[2\] ---> 匹配真实的2,且前后分别有一个左方括号和右方括号,例如: [2]
--3: \? ---> 匹配真实的?
--4: \( ---> 匹配真实的(
--5: \) ---> 匹配真实的)
--6: \* ---> 匹配真实的*
--7: \$ ---> 匹配真实的$
--8: \| ---> 匹配真实的|
--9: "|Stones||Bones|||Buildings".replace(/^\|/, "") ---> Stones||Bones|||Buildings,即删除最开始的管道符|
-10: "|Stones||Bones|||Buildings".replace(/\|+/, "|") ---> |Stones|Bones|Buildings,即将连续出现的多个管道符|改为一个
-11: "|Stones||Bones|||Buildings".split("|").uniques().join("|") ---> Stones|Bones|Buildings,先分割再去重最后再组合
[]: 方括号[ ]用来指定一系列的待选单个字符集。在方括号内使用 - 来指定字符域的范围。
--1: [0123456789] ---> 匹配其中任何一个数字
--2: [0-9] ---> 匹配其中任何一个数字
--3: [a-z] ---> 匹配所有小写字母
--4: [A-Z] ---> 匹配所有大写字母
--5: [0-9a-zA-Z] ---> 匹配所有字母和数字
--6: analy[sz]e ---> 匹配美式拼写(analyze)和英式拼写(analyse)
--7: [0-9][a-z] ---> 表示一个数字后面跟至少一个小写字母
--8: [a-z][0-9][0-9][0-9] ---> 表示一个字母后面跟至少三个数字
--9: [0-9] [a-z] ---> 表示一个数字和一个字母中间存在一个空格,例如: 1 cm/25 in/12345 meters都符合要求
-10: [^xyz] ---> 方括号中[]的^表示取反,表示匹配除了[]中的字符
-11: [^a-zA-Z0-9] ---> 代表不是字母且不是数字,例如: 标点符号/连续空格,但是不包括空值null,因为null不是字符
-12: [^a-zA-Z0-9]\d[^a-zA-Z0-9] ---> 代表任何一个数字,且其前后都有一个字符,这个字符不是字母及数字,例如: (3)
#数量符# ————表示被匹配字符的数量
?: 前面的字符重复0次或1次
*: 前面的字符重复0次及以上
+: 前面的字符重复1次及以上
{n}: 前面的字符重复n次
{n,}: 前面的字符重复n次及以上
{,n}: 前面的字符重复n次及以下
{n,m}: 前面的字符重复n次-m次
--1: N\d{5}, ---> 将匹配字母N 开头,后面跟5 位数字,然后是一个逗号
#锚符# ————不是表达有什么字符被匹配,而是要确定字符串的哪个位置被匹配
^: 代表整体字符串的开始位置
$: 代表整体字符串的结束位置
\b: 代表单词的开始位置或结束位置,单词分隔符包括空格、标点符号和换行符
--1: ^\d ---> 匹配开始为一个数字
--2: \d$ ---> 匹配结束为一个数字
--3: ^\d.*\d$ ---> 匹配开始为一个数字,0 个或更多的任意字符(表达式中的点),结尾为一个数字
--4: ^\d+$ ---> 匹配任意长度的数字
--5: \b\d{3}\b ---> 匹配三位的数字
#可选符# ————除了前面的方括号[]中的字符表示可选外,有的时候待选的内容不止一个字符
|: 代表或的意思
--1: glass|wood|steel ---> 匹配glass或者wood或者steel
--2: \d+|many|few ---> 匹配任意数字或者many或者few
--3: N\d{5},|N\d{8}, ---> 匹配以N 开头以“,”结尾,中间要么是五位数要么是八位数,其他的都不匹配
#组符# ————如果对一组字符应用数量符,就需要把他们用圆括号( )括起来
(): 代表对括起来的正则表达式表示的字符是一组且具有高优先级,可以用美元符号$跟一个数字来定义组
--1: (la)+ ---> 匹配la,lala,lalala等,而la+则匹配la, laa, laaa等
--2: analy(z|s)e ---> 匹配analyze 或者 analyse,等同于analy[zs]e
--3: analyz(e|ing) ---> 匹配包含analyze 或 analyzing
--4: "--23rd".replace(/(\d+)rd$/,"No. $1rd:") ---> --No. 23rd:,$1表示第1组,$0代表整个表达式的结果
边栏推荐
- static在不同位置定义变量居然还有不同的含义?
- 力扣:96.不同的二叉搜索树
- Web Basics and Exercises for C1 Certification - My Study Notes
- 如何低成本修bug?测试左移给你答案
- 【云原生--Kubernetes】Pod资源管理与探针检测
- 嵌入式系统驱动初级【4】——字符设备驱动基础下_并发控制
- The 2022 PMP exam has been delayed, should we be happy or worried?
- C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.2 我的代码为什么无法运行
- 3面头条,花7天整理了面试题和学习笔记,已正式入职半个月
- 力扣:62.不同路径
猜你喜欢
随机推荐
MySQL数据库面试题总结(2022最新版)
FPGA学习笔记——知识点总结
【SemiDrive源码分析】【MailBox核间通信】47 - 分析RPMSG_IPCC_RPC 方式 单次传输的极限大小 及 极限带宽测试
心余力绌:企业面临的软件供应链安全困境
去重的几种方式
[Evaluation model] Topsis method (pros and cons distance method)
4.3 基于注解的声明式事务和基于XML的声明式事务
npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
如何将 DevSecOps 引入企业?
[One step in place] Jenkins installation, deployment, startup (complete tutorial)
Cannot read properties of null (reading 'insertBefore')
Landing, the IFC, GFC, FFC concept, layout rules, forming method, use is analysed
力扣:343. 整数拆分
Web Basics and Exercises for C1 Certification - My Study Notes
MySQL log articles, binlog log of MySQL log, detailed explanation of binlog log
Get the selected content of the radio box
leetcode 12. Integer to Roman numeral
idea设置识别.sql文件类型以及其他文件类型
C专家编程 第5章 对链接的思考 5.6 轻松一下---看看谁在说话:挑战Turning测验
As soon as flink cdc is started, the CPU of the source Oracle server soars to more than 80%. What is the reason?