在R、shell,Python等进行字符串处理时,常常使用正则表达式进行高效的文本编辑。下面小结一下关于正则表达式的基础用法
1、匹配字符(集)
.
: 可以匹配除换行符外的任意字符
\d
:匹配数字
\s
:可以匹配任意空白符
\b
:匹配单词间的边界
\w
: 匹配字母或数字或下划线或汉字
\W
: 匹配任意不是字母,数字,下划线,汉字的字符
[abc]
: 匹配字母a,或者b,或者c
[A-z]
: 匹配所有大小写字母;[a-z]
: 匹配小写字母;[A-Z]
: 匹配小写字母
[0-9]
:匹配数字;[a-c0-5]
:匹配字符abc以及数字012345
[^abc]
: 匹配非abc以外的其它字符
^
从字符串开头进行匹配
$
从字符串末尾进行匹配
上述使用中括号
[]
方法可提供多个候选单字符匹配方式。如果想匹配多个候选字符串的话,可使用管道符号|
。例如p(ython|erl)
可匹配python或者perl。
2、匹配次数
*
: 重复零次或更多次
+
: 重复一次或更多次
?
: 重复零次或一次
{n}
: 重复n次
{n,}
: 复n次或更多次
{,m}
:最多匹配 m 次
{n,m}
: 重复n到m次
(1)默认对前面的单字符进行多次匹配。当匹配字数的字数为多字符时,可使用()
括起来。
(2)上述正则表达式默认是贪婪的,即匹配所允许的、尽可能多的内容。可通过在后面加上问号将其指定为分贪婪模式,即尽可能少的重复。例如*?
,+?
正则表达式在线测试: