基本正则表达式
(1)^ 行开始符
例如:"^jacline"匹配所有以jacline开始的行
(2)$ 行结束符
例如:"jacline$"匹配所有以jacline结束的行
(3). 匹配任意一个字符
例如:jacl.ne可以匹配jacline、jaclnne等
(4)[]匹配其中一个
例如:[Jj]可以匹配Jacline或者jacline其中一个,或者Jalinzi等
(5)[^]不匹配[]中的任何一个字符
例如:[^TJ]he不匹配The、Jhe,但可以匹配the、she等
(6)[-]匹配固定范围内的字符
例如:[a-d]he可以匹配ahe或者bhe、che、dhe,但不可以匹配ehe、fhe·····The等
(7)?匹配0次或者1次
例如:t\?he可以表示he或者the
(8)+至少匹配一次
例如:J+iang可以匹配Jiang或者JJiang、JJJiang···,但不能匹配iang
(9)*匹配0次或多次
例如:S*park可以匹配park或者Spark、SSpark、SSSpark等
(10){n},匹配n次
例如:[A-Z]{3},匹配任意3个大写字母,等同于[A-Z][A-Z][A-Z]
(11){n,}至少匹配n次
例如:{a-z}{2},至少匹配2个小写字母,等同于[a-z][a-z]······
(12){n,m}至少匹配n次,至多匹配m次
例如:[A-Z][a-z]{2,3},表示首字母大写,单词长度为3或者4的单词,可以匹配She、Helo,但不能匹配He、Hello
(13)()匹配一组字符
例如:Sp(ar)\?k ,可以匹配Spark、Spk、Spak、Sprk
(14)\ 转义字符
对于特殊字符需要转义的有:?、+、.、()、{}
(15)URL匹配格式
[A-Za-z]*://[A-Za-z]*\.\(\([A-Za-z]*\)\.\?\)*
http://spark.apache.org
本文参考该链接内容,较之简化:http://itfish.net/article/49239.html
2016年1月8号,补充scala中遇到的正则表达式:
(1) 相关类 scala.util.matching.Regex
(2) 通过String的r方法来构造regex,例如:"""([A-Z]+) ([a-z]+)""".r
(3) 正则表达式一般配合case运用
我发现了一个比较好的学习正则表达式的网站:http://www.jb51.net/tools/zhengze.html