正则符号
符号 | 意义 |
---|
^ | 开头 |
. | 任意字符,除了换行符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]’ 的模式。 |
* | 任意多次 |
+ | 一次以上 |
? | 非贪婪匹配,左边起第一个(匹配到就停) |
[ ] | 表示集合全判定为符号 ,[^1]表示不从集合里取 |
{} | [1]表示出现一次,[1,]一次以上,[1,3]一次三次之间 |
| | 或运算 |
$ | 结尾 |
() | 子字符串提取,语法为:匹配结果.group(1),数字是从外向内算 |
| |
\s | 匹配任意空白字符,等价于 [\t\n\r\f]. |
\S | 匹配任意非空字符 |
\d | 匹配任意数字,等价于 [0-9]. |
\D | 匹配任意非数字 |
\G | 匹配最后匹配完成的位置。 |
\b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配"never" 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。 |
\B | 匹配非单词边界。‘er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。 |
\n, \t, 等. | 匹配一个换行符。匹配一个制表符。等 |
/w | [a-zA-Z0-9_] |
\d | [0-9] |
\A | 匹配字符串开始 |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。 |
\z | 匹配字符串结束 |
对应问题的解决
| |
---|
中文(范围) | [\u4E00-\u9FA5] |
Study in 清华大学 | .*?([\u4E00-\u9FA5]+大学) |
b开头,中间无数,3结尾 | ^B .* 3$ |
从左到右提取2001年 | ?(\d+)年 |
只提取2001年 | (\d{4})年 |
具体详解可以参考:
https://www.cnblogs.com/edwardsun/p/4421773.html
匹配一个字符串,满足以下要求的会被匹配 | 匹配的正则 |
---|
由26个大写英文字母组成的字符串 | ^.*[A-Z].*$ |
由26个小写英文字母组成的字符串 | ^.*[a-z].*$ |
数字 | .*\d.* |
字符 | .*\w.* |
N位以上 | .{n,} |
不包括连续重复的四位的字符串 | ^(?:(?!(.)*(.)\2{3}(.)*).)+$ |