
OOpre Lec4-输入解析的结构性设计
明明应该是国庆假期的,🐭🐭却要来上op(哭)
Lec4-输入解析的结构性设计
输入序列结构的特征分析
为什么需要输入解析?
-
如果用户输入的数据格式不正确获证解析出错,就会导致结果错
garbage in$\rightarrow$garbage out
-
方便用户交互与体验
-
便于维护
输入解析的步骤
- 获取输入
- 提取数据
- 验证数据
- 转换为程序内部数据
输入序列结构到对象层次结构的映射
-
输入解析
将输入数据从原始格式转换为程序所能处理的**数据(结构)**的过程
-
对象构造
将输入解析的**数据(结构)映射到对象(层次结构)**的过程
需要设计合适的对象模型(数据结构设计)
正则表达式的模式结构介绍
啊啊啊都一节课过去了,这个最重要的部分他怎么还没开始讲(小声)
语法介绍
| 符号 | 含义 |
|---|---|
| * | 匹配前面的模式零次或多次 |
| + | 匹配前面的模式一次或多次 |
| ? | 匹配前面的模式零次或一次 |
| {n} | 匹配前面的模式恰好 n 次 |
| {n,} | 匹配前面的模式至少 n 次 |
| {n,m} | 匹配前面的模式至少 n 次且不超过 m 次 |
| [ ] | 匹配括号内的任意一个字符 |
| [^ ] | 匹配除了括号内的字符以外的任意一个字符 |
| ^ | 匹配字符串的开头 |
| $ | 匹配字符串的结尾 |
| \b | 匹配单词边界 |
| \B | 匹配非单词边界 |
| ( ) | 用于分组和捕获子表达式 |
| ( ?) | 非贪婪匹配 |
| (?: ) | 用于分组但不捕获子表达式 |
| \ | 转义字符,用于匹配特殊字符本身 |
| . | 匹配任意字符(除了换行符) |
| | | 用于指定多个模式的选择 |
| \d | 匹配任意数字字符 |
| \D | 匹配任意\d不能匹配的字符 |
| \w | 匹配任意字母数字或下划线字符 |
| \W | 匹配任意\w不能匹配的字符 |
| \s | 匹配任意空白字符 |
| \S | 匹配任意非空白字符 |
贪婪匹配
正则表达式默认采用贪婪匹配——任何一个模式,都会尽可能匹配多个字符
在模式表达式后添加?,即代表非贪婪匹配
层次正则
如果查找元字符本身,比如查找.,或者*,就出现了问题:没法指定它们,因为被解释成其它的意思,这时必须使用\来取消这些字符的特殊意义
作业内容
引入战斗模式和战斗日志(原神怎么你了)🤣👉🤡
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自fysszlr's blog
评论 ()





