1. 软件开发目录规范
demo
├── bin # 存放一系列启动文件,当启动文件很少或者只有一个时也可以直接放外面
│ └── start.py
├── conf # 存放一系列配置文件
│ └── settings.py # 一般情况下该文件的变量名都大写
├── core # 存放项目核心代码文件
│ └── src.py
├── db # 存放数据相关文件
│ └── userinfo.txt
├── lib # 存放公共的功能
│ └── common.py
├── log # 存放日志的目录
│ └── log.txt
├── readme # 存放相关信息(使用说明等)
└── requirements.txt # 存放项目所需的第三方模块及版本号
2. 正则表达式
2.1 字符组
- 特征是使用中括号括起来的 ,字符串默认只能单个单个字符匹配
字符 | 含义 |
---|
[123456789]简写[0-9] | 匹配数字 0-9 之间任何一个数字 |
[a-z] | 匹配小写字母 a-z 其中任意一个字母 |
[A-Z] | 匹配大写字母 a-z 其中任意一个字母 |
[a-zA-Z0-9] | 匹配所有数字、大写字母、小写字母 |
2.2 特殊符号
字符 | 含义 |
---|
. | 匹配除换行符以外的任意字符 |
\d | 匹配数字 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结尾 |
a|b | 匹配字符 a 或 b |
() | 匹配括号内的表达式也表示一个组 |
[…] | 匹配字符组中的字符 |
[^…] | 匹配除了字符组中字符的所有字符 |
2.3 量词
- 表达式在没有量词的修饰情况下都是单个匹配
- 量词必须结合(字符串、特殊符号等)一起使用,不能单独出现
- 量词只能影响前面的一个表达式(ab+ 只能影响 b)
- 正则表达式中的量词默认都是‘贪婪匹配’
字符 | 含义 |
---|
* | 重复零次或者更多次 |
+ | 重复一次或者更多次 |
? | 重复零次或者一次 |
{n} | 重复 n 次 |
{n,} | 重复 n 次或者更多次 |
{n,m} | 重复 n 到 m 次 |
2.4 贪婪匹配与非贪婪匹配
<script>123</script>
# 默认贪婪匹配,尽可能的多匹配
<.*> 匹配结果是<script>123</script>
# 非贪婪匹配,尽可能的少匹配,结束条件由左右两边决定
<.*?> 匹配结果是<script>和</script>
取消转义
在原生的正则表达式中取消转义推荐使用\(每个\只能取消一个字符的转义)
在python中取消转义推荐使用r'\n\a\t'(也可以使用\)