R正则表达式-理论

Posted 小袁的数量遗传学笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R正则表达式-理论相关的知识,希望对你有一定的参考价值。

    正则表达式是描述字符串(strings)集合的一个模式(pattern),概念比较抽象,举个例子就比较好理解,比用.(点,英文句号)表示任意一个非空字符的话,那么A.就可以用来表示AA,AB...。

1.元字符

    上面这个简单的例子看到,用.(英文的句号)可以表示任意一个非空的字符,聪明的我们自然会问,还有没有别的符号代表“特殊的意义”?以下这些符号具有特殊的意义:

. 任意一个非空字符,如A.可表示AB,AC,等等

 |  表示或者的意思,如A|B表示A或者B,

( ) 表示模式分组,也可以理解为数学里面的优先计算,比如AB|C 究竟表达的意思是AB或C还是AB或AC呢,不必担心,加个括号就明朗。A(B|C),就表示AB或AC,

[] 表示内容之一,如[a-z]就表示a-z中的一个

{n} 表示前面的内容,匹配多少次;{n,m}次数在n-m之间

 ^  表示在字符串的开头,^放在[]里表示非

$ 表示字符串尾部

* 量词,表示前面匹配n个

+ 一个或多个

? 零个或多个

 \ 转义

\\t tab

\\n换行

2.类字符

\\d 表示数字0-9, 

\\D 表示非数字,

\\s 表示空白字符(包括空格、制表符、换行符等),

\\S 表示非空白字符,

\\w 表示字(字母和数字),

\\W 表示非字,

\num 其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\\1”匹配两个连续的相同字符。

3.边界字符

\\b匹配一个单词边界,也就是指单词和空格间的位置。

\\B匹配非单词边界。

\\< 表示左空 \\>右空

4.正则表达式符号运算顺序

()最优先,然后是表示重复次数的操作,即:* + {},接下来是连接运算(其实就是几个字符放在一起,如abc),最后是表示可选项的运算|;这些运算规则并不重要,重要的是你想哪里优先,就在哪里加小括号。



下面链接下载R正则Cheat Sheet

https://www.rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf

以上是关于R正则表达式-理论的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式理论基础

正则表达式(理论篇)

正则表达式-理论基础篇

正则表达式-理论基础篇

JavaScript正则表达式学习笔记之一 - 理论基础

正则表达式re