正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
单个字符匹配
- \d 匹配一个一位数字,即0-9
- \D 匹配非数字字符,即非\d可以匹配的字符
- \w 可以匹配a-z和A-Z和0-9和_(下划线)以及各国的语言(中国、日本等)不推荐使用
- \W 匹配非\w可以匹配的字符
- \s 匹配空白字符,即\n换行,\t制表符,空格符等
- \S 匹配非\s可以匹配的字符
- . 匹配非\n换行符的字符
- \r 匹配一个回车符
- \n 匹配一个换行符
- \f 匹配一个换页符
- [a-z] 匹配a到z之间的一个字符
特殊符号
- ^ 从字符串的首个字符开始匹配,第一个不符合则失败; [^/]在放括号中,此时可以匹配非’/‘的任意字符,’/'可以换成任意字符
- $ 结束时需要匹配到最后一个字符
- * 匹配前面的子表达式零次或多次
- + 匹配前面的子表达式一次或多次
- ? 匹配前面的子表达式零次或一次
- {n} n 是一个非负整数,匹配确定的 n 次
- {n,} n 是一个非负整数,至少匹配 n 次
- {n,m} m 和 n 均为非负整数,其中n <= m,最少匹配 n 次且最多匹配 m 次
- () 标记一个子表达式的开始和结束位置;子表达式可以获取供后面使用,要匹配这些字符,第一个使用\1,第二个使用\2以此类推
- | 或则
*、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。