1. 如果精确查找 “ hi ” 这个单词,可以使用:\bhi\b
2. \bhi\b. *\bLucy\b
表达式的意思是:一个单词hi然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。
这里, . 是另一个元字符,匹配除了换行符以外的任意字符。
*同样是元字符,不过它代表的不是字符,也不是位置,而是数量,它指定* 前边的内容可以连续重复使用任意次以使整个表达式得到匹配。
因此,.* 连在一起就意味着任意数量的不包含换行的字符。
3. 0\d\d-\d\d\d\d\d\d\d\d 相当于 0\d{2}-\d{8}
表达式的意思是:以0开头,然后是两个数字,然后是一个连字号"-”,最后是8个数字。
这里的\d是个新的元字符,匹配一位数字。-不是元字符,只匹配它本身这个字符串。
4. \s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w匹配字母或数字或下划线或汉字等。
5. \ba\w*\b
匹配以字母a开头的单词,先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
6. \d+匹配1个或更多连续的数字。+ 和 * 类似,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。
? 重复0次或1次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
7. \b\w{6}\b 匹配刚好6个字符的单词。
8. ^ 匹配字 符串的开始, $ 匹配字符串的结束。
9. ^\d{5,12}$
5到12位的数字。
如果不使用^和$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。
10. 若想使用 ‘ . ’ ,‘ * ’ ,‘ \ ’ 则要在前加上转义字符 ' \ ',也就是' \. ' ,' \* ' ,' \\ '
11. \(?0\d{2}[) -]?\d{8}
eg:(010)88886666,或022-22334455 ,或02912345678等。
一个转义字符\( ,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字( \d{8})。
不幸的是,也能匹配010)12345678或(022-87654321这样的"不正确"的格式。通过分支条件: | 可以解决这个问题。
\(0\d{2}\){- }?\d{8}|0\d{2}[- ]?\d{8}
——————————————未完待续——————————————
网友评论