FIT5196 Seminar Week 3
本页目录· 15 条
这一页有部分内容暂时无法显示,其余内容完整。
Gemini说1. Data Wrangling Tasks
数据清洗是指获取、清理、结构化和丰富原始数据,将其转换为可直接用于分析格式的过程。
包含的阶段:数据发现 、数据预处理 、数据收集 、数据转换 、数据清理 、数据存储 、数据丰富 、数据验证 。
2. Regular Expressions
正则表达式是描述文本模式的一组符号
正则表达式在从文本(如日志文件、HTML/XML 文件和其他文档)中查找、替换和提取信息时非常有用。
- 在文档中搜索包含或不包含 'u' 的单词 colour 或 neighbour。
- 将制表符 (tab) 分隔的文件转换为逗号分隔的文件。
- 在文本中查找重复的单词。
- 搜索并将 "Bob" 和 "Bobby" 替换为 "Robert"。
正则表达式在验证输入是否符合文本模式时非常有用,例如验证:
- 电话号码:电话号码的位数正确吗?
- 电子邮件:电子邮件地址的格式有效吗?
- 日期:日期格式正确吗?月份超过 12 了吗?
3. Regular Expression Syntax
Test your Regular Expression
pythex.orgpythex.orgCharacter Sets
字符集
- 匹配包含一个或多个字面字符的字符串,称为字符串字面量 (string literals)
cat匹配 "cattle" 和 "catfish" 的前三个字符cat匹配 "cat"cat匹配 "cattle" 和 "catfish" 的前三个字符
- 这与文本编辑程序中的搜索功能类似。
- 匹配是区分大小写的:
cat不匹配 "Cat"
[…]
Character Sets
[…] indicate a set of characters
- 匹配集合中的几个字符之一,但仅匹配一个字符。
- 字符的顺序无关紧要。
[a-zA-Z] and [0-9]
Character Ranges
- 可以通过给出两个字符并用 '
-' 分隔它们来指示字符范围。 - [a-z] or [A-Z]
- [0-9]
[50-99]并不是指 50 到 99 之间的所有数字,它的效果与[0-9]相同 结合[…], [50-99] 匹配5, 0-9, 9
[^…]
Negative Character Sets
否定字符集 [^…],表示不包含
- 如果集合的第一个字符是
^,则将匹配所有不在该集合中的字符
[.+]
Metacharacters Inside Character Sets 字符集中的元字符
- 在正则表达式中,像
.、+、*、(、)这样的符号通常有特殊含义(元字符)。但在方括号[]内部,它们大多会自动变成普通字符。
Shorthand Character Sets
| Shorthand | Meaning (含义) | Equivalent |
\d | 匹配任意 0 到 9 的十进制数字 | [0-9] |
\w | 匹配任意单词字符(包含字母、数字和下划线) | [a-zA-Z0-9_] |
\s | 匹配任意空白字符(包含空格、制表符、换行符等) | [ \t\n\r] |
\D | 匹配任意非数字字符 | [^0-9] |
\W | 匹配任意非字母数字字符(非单词字符) | [^a-zA-Z0-9_] |
\S | 匹配任意非空白字符 | [^ \t\n\r] |
Repetition
重复
*匹配前一个正则表达式的 0 次或多次重复+匹配前一个正则表达式的 1 次或多次重复?匹配前一个正则表达式的 0 次或 1 次重复
Quantified Repetitions (量化重复)
{m, n}:精确匹配前一个正则表达式的 m 到 n 次重复。
- m (最小值) 和 n (最大值) 是正数
- m 必须始终被包含,可以为 0
- n 是可选的
此处有一段内容暂不支持显示。
Grouping (…)
分组
(...) 匹配括号内的任何正则表达式,并指示一个组的开始和结束。
- 允许将重复操作符应用于整组正则表达式。
- 使正则表达式更易于阅读。
- 创建捕获组以用于匹配、替换和提取,即可以检索出该组的内容。
- 不能在字符集内部使用。
Alternation |
“|” 是一个 OR(或)操作符。
A|B将匹配符合 A 或符合 B 的任何字符串。- 有序性:最左侧的表达式具有优先权。
- 可以链式连接多个模式。
- 对交替表达式进行分组,以保持它们的独立性。
此处有一段内容暂不支持显示。
The Backslash Plague \
反斜杠 \ 表示特殊形式,或者允许您使用特殊字符而不触发它们的特殊含义
Python 解释器和正则表达式引擎都要使用 \ 作为“转义字符”,导致你需要写“转义的转义”才能匹配到一个普通的斜杠❓如何简化这个表达式?
使用Raw String
Raw String in Python
原始字符串会抑制转义字符的实际含义,并且根本不将反斜杠视为特殊字符
在 Python 代码中,通常会使用这种原始字符串表示法来编写正则表达式。
| Regular Python String Literal | Raw String |
\\\\section | r”\\section” |
”\\w+\\s+” | r”\w+\s+” |