Python用正则表达式根据格式匹配成语,如:AABB,AABC,ABAC......
代码中使用了 re 模块,这是 Python 的一个内置模块,可以用来处理正则表达式。正则表达式是一种用来匹配字符串的模式,可以用来检查一个字符串是否包含某些子串,或者是否符合某种格式。代码中使用了以下的正则表达式:
((.)\2(.)\3):这个表达式匹配 AABB 型的字符串,即由两个相同的字符和另外两个相同的字符组成的字符串。例如,嘻嘻哈哈,哗哗啦啦等。
代码中的 \1 \2 \3 分别代表正则表达式中的分组,也就是用括号 () 包围的部分。\1 代表第一个分组(就是整个表达式本身),\2 代表第二个分组,\3 代表第三个分组。
import rewith open('chengyu.txt', 'r') as f: # 打开文件并读取内容words = f.read().split() # 将文件内容按空格分割成列表# 定义不同类型的成语列表,并在第一个元素标明类型AABB = ['AABB']pattern_AABB = r'((.)\2(.)\3)' # 定义 AABB 型的正则表达式AABC = ['AABC']pattern_AABC = r'((.)\2(.)(.))' # 定义 AABC 型的正则表达式ABAC = ['ABAC']pattern_ABAC = r'((.)(.)\2(.))' # 定义 ABAC 型的正则表达式ABBA = ['ABBA']pattern_ABBA = r'((.)(.)\3\2)' # 定义 ABBA 型的正则表达式ABBC = ['ABBC']pattern_ABBC = r'((.)(.)\3(.))' # 定义 ABBC 型的正则表达式ABCB = ['ABCB']pattern_ABCB = r'((.)(.)(.)\3)' # 定义 ABCB 型的正则表达式for word in words: # 遍历每个词语if re.match(pattern_AABB, word): # 如果匹配 AABB 型AABB.append(word) # 将词语添加到 AABB 列表中elif re.match(pattern_AABC, word): # 如果匹配 AABC 型AABC.append(word) # 将词语添加到 AABC 列表中elif re.match(pattern_ABAC, word): # 如果匹配 ABAC 型ABAC.append(word) # 将词语添加到 ABAC 列表中elif re.match(pattern_ABBA, word): # 如果匹配 ABBA 型ABBA.append(word) # 将词语添加到 ABBA 列表中elif re.match(pattern_ABBC, word): # 如果匹配 ABBC 型ABBC.append(word) # 将词语添加到 ABBC 列表中elif re.match(pattern_ABCB, word): # 如果匹配 ABCB 型ABCB.append(word) # 将词语添加到 ABCB 列表中
print(AABB) # 打印 AABB 列表
print(AABC) # 打印 AABC 列表
print(ABAC) # 打印 ABAC 列表
print(ABBA) # 打印 ABBA 列表
print(ABBC) # 打印 ABBC 列表
print(ABCB) # 打印 ABCB 列表
Python用正则表达式根据格式匹配成语,如:AABB,AABC,ABAC......相关推荐
- python中正则表达式的默认匹配方式为_Python模式匹配与正则表达式
1.1 不用正则表达式来匹配文本 假设我希望在一个字符串中找到电话号码,电话号码的格式为三个数字,一个短横线,四个数字,一个短横线,四个数字 比如:131-3310-5293和132-2670-986 ...
- c++正则表达式 日期格式匹配
std::regex reg("(\\d{4})-(0\\d{1}|1[0-2])-(0\\d{1}|[12]\\d{1}|3[01])\\s(0\\d{1}|1\\d{1}|2[0-3]) ...
- js正则表达式 URL格式匹配详解
0.URL格式 protocol :// hostname[:port] / path / [;parameters][?query]#fragment [;parameters]没见过 这里就不做相 ...
- python中正则表达式的默认匹配方式为贪婪匹配_python正则表达式贪婪算法与非贪婪算法与正则表达式子模式的简单应用...
先引入一下百度百科对于正则表达式的概念: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则 ...
- js正则表达式 URL格式匹配 http替换成https
匹配替换http为https: function urlConversion(path) {let reg = /^(https?:\/\/)([0-9a-z.]+)(:[0-9]+)?([/0-9a ...
- python中正则表达式的简单应用_Python正则表达式详细应用
原文地址:http://www.jb51.net/article/65286.htm 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合, ...
- Python中正则表达式用法 重点格式以这个为准_首看_各种问题
20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...
- java string 返回匹配正则的字符串的起始位置_【Python】正则表达式
概述 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...
- python判断是否包含数字的成语_Python知识点记录三(正则表达式)
正则表达式 正则表达式是一个特殊的字符序列,可以检测一个字符串是否与我们设定的字符序列相匹配. 一.findall()方法 re模块下的findall()方法可以查找对应字符/字符串 最简单的方法可以 ...
最新文章
- ATL::CStringA和std::string之间转换的一些误区
- partial 分布类
- ajax实现php验证码验证码,PHP验证码之Ajax验证实现方法_PHP教程
- 网络加速和优化控制常用管理
- C# asp.net mvc 配置多个route 参数
- JAVA四种遍历Map的方法
- 双十一提前预热,这款耳机直降80元!
- Altium Designer中PCB关于Import Changes报错最终解决方案
- jedis连接池的maxIdle和maxtotal参数
- H3C交换机配置SSH
- vue的nxut框架生命周期触发两遍的问题
- 概率统计Python计算:单个正态总体均值的双侧区间估计
- android 卸载残留代码,完全卸载AndroidStudio(示例代码)
- MX550性能怎么样 mx550 属于什么档次的显卡
- 积极心态,助力人生成功
- oracle dbca没有,ORACLE 使用DBCA静默创建数据库
- 到底什么是范数?什么是0范数、1范数、2范数?区别又是什么?
- Android 实现三种响铃模式的切换
- CTFHUB-WEB-XSS【05】反射型
- 微软为Windows8平板所配备的键鼠套装
热门文章
- jks bks 等的定义 如何将jks转化为bks的
- virsh 保护命令 virtual protect rebase
- Perl之正则表达式基础(一)
- VOT-toolkit Python 版本使用教程--官方样例版
- element ui 的 el-tab 当使用 router-view 时 mounted 执行了多次
- 爬取京东笔记本电脑销量榜每件商品详情页url,并存入云服务器中的mysql库
- linux可以打开浏览器嘛,Linux下怎样可以打开浏览器?
- 【区块链】以太坊Solidity编写一个简单的Hello World合约
- 使用pip安装模块时提示: No module named pip
- K3 Wise 常用表【转载】