所谓正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求。
1、“.”和"\"
"."点儿,在正则表达式中表示任意一个字符。
"\"在正则表达式中是转意字符,当我们需要描述一个已经被正则表达式使用的特殊字符时,我们就可以通过使用"\"将其转变为原本的意思。
"\"在正则表达式中也有一些预定义的特殊内容:
- \d:表示任意一个数字
- \w:表示任意一个单词字符(只能是 数字,字母,下划线)
- \s:表示任意一个空白字符(\t \r \n \f \x0B)
- \D:表示任意一个非数字字符
- \W:表示任意一个非单词字符
- \S:表示任意一个非空白字符
2、"字符集合 []"
"[]"用来描述单一字符,方括号内部可以定义这个字符的内容,也可以描述一个范围。例如:
[abc]:表示该字符只能是a或者b或者c
[123]:表示该字符只能是1或者2或者3
当我们需要描述所有小写字母时,我们可以使用范围 [a-z],表示该字符可以是任意一个小写字母。
同样还可以使用 [0-9] 来表示该字符可以是任意一个数字。
也可以在多个范围内选择。比如,[a-zA-Z0-9_] 表示该字符可以是任意字母,数字以及"下划线"。
3、"*"、"+"、"?"
通常我们需要描述的字符串会有很多重复出现的元素,但又不需要严格限制出现的次数时,我们就可以使用"*","+"这些量词。
例如:邮箱地址,那么在"@"字符前允许出现若干字符作为用户名。这时候我们就可以使用"\w+"来描述这里至少出现一个单词字符了。
- "+":表示内容可以连续出现至少1次以上
- "*":表示内容出现0-若干次
- "?":表示内容出现0-1次
4、{n}、{n,}{n,m}
除了前面讲到的量词外,有时我们也需要要求内容出现的次数有具体要求。比如手机号码。这时我们要求出现的数字就不能是一个模糊的概念了,而必须要求11位。又比如我们要求用户输入密码时,要求密码是6-15位。遇到这类问题是,我们可以使用:
- {n}:表示内容必须出现n次
- {n,m}:表示内容出现n-m次
- {n,}:表示内容出现至少n次
例如,\d{11} 就表示数字只能出现11位,这样就解决了上述的问题。
————————————————————————————————————————————————————————————————————————
希望对初学者有帮助!