正则表达式

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

Cheat Sheet:Basic Regular Expressions in R

正则表达式

普通字符:普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。可直接匹配自身。
元字符:元字符加斜杠\匹配自身(在R中斜杠为\\,匹配+应写为\\+

非打印字符

非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列

字符描述
\cx匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。
x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符
\s空白字符,等价于[ \f\n\r\t\v]
\S非空白字符,等价于[^ \f\n\r\t\v]

打印字符

打印字符描述等价
.(dot)匹配除换行符、制表符之外的任何单个字符[^\n\r]
\d匹配一个数字[0-9]
\D匹配一个非数字[^0-9]
\w匹配字母、数字、下划线[A-Za-z0-9_]
\W匹配非字母、数字、下划线[^A-Za-z0-9_]

限定符

限定符描述等价
*零次或多次{0,}
+一次或多次{1,}
?零次或一次{0,1}
{n}匹配确定的n次
{n,}至少匹配n次
{n,m}匹配>=n且<=m次

{% note warning %} 限定符都是贪婪匹配,在之后放置 ?,可转换为最小匹配(如*?) {% endnote %}

定位符

定位符描述示例
$匹配结尾位置(.csv)$
^匹配开始位置^(Windows)
\b匹配单词边界位置er\b 可以匹配never 中的 er,但不能匹配 verb 中的 er
\B匹配非单词边界位置er\B 能匹配 verb 中的 er,但不能匹配 never 中的 er

选择

选择描述举例
(pattern)匹配pattern并获取结果
(?:pattern)匹配 pattern 但不获取匹配结果Win(?:7\|10)相当于Win7\|Win10简略版
(?=pattern)正向肯定预查(look ahead positive assert)Win(?=XP)能匹配WinXP中的Win,但不能匹配Win10中的Win
(?!pattern)正向否定预查(negative assert)Win(?!XP)能匹配"Win10"中的Win,但不能匹配WinXP中的Win
(?<=pattern)反向(look behind)肯定预查(?<=7)Win能匹配7Win中的Win,但不能匹配10Win中的Win
(?<!pattern)反向否定预查(?<!7)Win能匹配10Win中的Win,但不能匹配7Win中的Win

字符集合

字符集合描述
x | y或,优先级最低
[xyz]字符集合,匹配任意一个
[a-z]小写字母
[0-9]数字
[^xyz]匹配不在集合里的任意字符
[^a-z]除了小写字母
[A-Z]大写字母
\num匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。
例如,’(.)\1’ 匹配两个连续的相同字符。

R语言通用字符集

字符集合描述
[:punct:]punctuation
[:alpha:]letters.
[:lower:]lowercase letters.
[:upper:]upperclass letters.
[:digit:]digits.
[:xdigit:]hex digits.
[:alnum:]letters and numbers.
[:cntrl:]control characters.
[:graph:]letters, numbers, and punctuation.
[:print:]letters, numbers, punctuation, and whitespace.
[:space:]space characters (basically equivalent to \s).
[:blank:]space and tab.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值