str = 'The white dog wears a black hat.'
pattern = r'The (white|black) dog wears a (white|black) hat.'
repl = r'The \2 dog wears a \1 hat.'
re.sub(pattern, repl, str) # => 'The black dog wears a white hat.'
str = 'The white dog wears a black hat.'
pattern = r'The (white|black) dog wears a (white|black) hat.'
repl = r'The \2 dog wears a \1 hat.'
re.sub(pattern, repl, str) # => 'The black dog wears a white hat.'
repl = r'The \1 dog wears a \1 hat.'
re.sub(pattern, repl, str) # => 'The white dog wears a white hat.'
str = 'The white dog wears a black hat.'
pattern = r'The (?:white|black) dog wears a (white|black) hat.'
re.findall(pattern, str) # => ['black']
repl = r'The \1 dog wears a \1 hat.' # 之前的一处捕获,在替换时可被多次引用
re.sub(pattern, repl, str) # => 'The black dog wears a black hat.'
1. 基本概念
2. 准备工作
3. 操作符,原子与优先级
4. 原子
4.1 本义字符
\
4.2 集合原子
4.3 类别原子
4.4 边界原子
4.5 组合原子
5. 数量操作符
er
、[er]
和(er)
各不相同。6. 或操作符
7. 匹配并捕获
8. 控制标记
9. 常用规则
10. 附:趣事一则
ELIZA 是人类史上第一个 “聊天机器人” 程序,上个世纪六十年代(1966)实现的,核心就是使用正则表达式匹配对方语句中的关键词汇,再经过替换,形成看似有意义的 “回应” —— 事实上,ELIZA 完全不知道自己在说什么……
几年后,就是七十年代初(1972),另外一个聊天机器人 Parry 被写了出来,随后第二年,这两个聊天机器人在 ARPANET “碰面” 好好地聊了一下。
这俩的完整聊天记录可以在这里看到,不知道你看了是什么感觉……
不少后人用 Python 重新实现了 ELIZA,比如这个,你可以执行它,然后试着阅读和理解其实现,作为之前我们自己做练习的持续演进。
Logging
2020-05-06 17:15:27 2nd review 2020-04-26 18:02:16 initialize