在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)上述正则表达式默认是贪婪的,即匹配所允许的、尽可能多的内容。可通过在后面加上问号将其指定为分贪婪模式,即尽可能少的重复。例如*?+?


正则表达式在线测试:

https://c.runoob.com/front-end/854/