python 正则表达式应用——缩写词扩充
看具体示例
import re
def expand_abbr(sen, abbr):
lenabbr = len(abbr)
ma = ''
for i in range(0, lenabbr):
ma += abbr[i] + "[a-z]+" + ' '
print 'ma:', ma
ma = ma.strip(' ')
p = re.search(ma, sen)
if p:
return p.group()
else:
return '' print expand_abbr("Welcome to Algriculture Bank China", 'ABC')
分析
缩写词 FEMA
分解为 F*** E*** M*** A***
规律 大写字母 + 小写(大于等于1个)+ 空格
参考代码
问题
以上分析对于示例前三个是可以的,但是后三个出现问题了,大写字母开头的扩充词里夹杂这小写字母
解决
缩写词 FDA
分解为 F*** (**)? E*** (**)? M*** (**)? A***
其中(**)?表示小写字母组合出现一次或不出现
规律 大写字母 + 小写(大于等于1个)+ 空格 + [小写+空格](0次或1次)
参考代码
import re
def expand_abbr(sen, abbr):
lenabbr = len(abbr)
ma = ''
for i in range(0, lenabbr-1):
ma += abbr[i] + "[a-z]+" + ' ' + '([a-z]+ )?'
ma += abbr[lenabbr-1] + "[a-z]+"
print 'ma:', ma
ma = ma.strip(' ')
p = re.search(ma, sen)
if p:
return p.group()
else:
return '' print expand_abbr("Welcome to Algriculture Bank of China", 'ABC')
语法
? 匹配前边一次或0次
()作为一个分组,后边可以加量词,表示匹配的次数
python 正则表达式应用——缩写词扩充的更多相关文章
- python正则表达式 小例几则
会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...
- python 正则表达式 练习题
会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python天天美味(15) - Python正则表达式操作指南(re使用)(转)
http://www.cnblogs.com/coderzh/archive/2008/05/06/1185755.html 简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格 ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- [转] Python正则表达式指南
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- 转载 Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写.转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式 ...
- python 正则表达式规则收集
python正则表达式基本元字符 . 通配符,匹配所有字符 ^abc 匹配以abc开始的字符串 abc$ 匹配以abc结尾的字符串 [abc] 匹配字符集合 [A-Z0-9] 匹配字符范围 ...
- python正则表达式入门篇
文章来源于:https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. ...
随机推荐
- 双系统Grub引导下恢复windows引导的方法
此方法适用于windows系统正常,linux和windows 双系统下恢复windows系统引导.需要使用windows安装u盘 1. 启动至windows安装u盘,点击修复计算机 2. 进入命令行 ...
- Transcation And Lock--SQL SERVER 事务隔离级别
SQL SERVER 事务隔离级别:1.未提交读(READ UNCOMMITED) 允许脏读,读取数据时不加共享锁,与使用WITH(NOLOCK)结果相同2.已提交读 不允许脏读,读取数据 ...
- Qt学习(二):项目学习
1. 概述 Qt做UI设计后,通常会生成Form Files文件夹下的ui文件.Generated File文件夹下的ui_xxx等头文件和源文件.Header Files文件夹下的头文件.Sourc ...
- 不可逆转(SDOI2010地精部落)
提供一个简单一点的思路,不需要滚动数组,也不需要一些奇奇怪怪的性质. 我们考虑设\(f[i]\)为\(1\)到\(i\)中有多少种波动数列. 我们可以注意到,波动数列分为先降后升和先升后降两种,但是我 ...
- [HNOI2003]消防局的设立(树上距离为k的最小覆盖问题)
题目的大概意思现在有一棵树,在树上找半径小于等于2的最小覆盖点的最小个数. 题目链接 讲一讲此类题的贪心策略: 就是每次寻找最低没有被覆盖的点,显然对于覆盖它的所有点中,在他的祖先处设立一个点最优.所 ...
- windows server2008 r2安装DNS服务器
1.开始->管理工具->服务器管理器 2.角色->添加角色 3.服务器角色->DNS服务器 4.一直点击下一步,直至安装完成. (确认步骤时会提示,可能会需要重启服务器) 安装 ...
- centos6.3 配置 smb 服务
1.安装 samba 以及相关依赖包:yum install samba samba-client samba-swat 2.添加 smb 服务用户:smbpasswd -a user_name(之后 ...
- 十,PHP下载文件
1,文件类型 (1)文本文件,如xx.txt. (2)二进制文件,如图片.视频.音频. 2,文件下载流程如下图所示,首先浏览器向服务器发送下载请求,服务器将下载资源读入内存,再通过http将资源返回到 ...
- MongoDB 学习笔记四 C#调用MongoDB
驱动 下载 https://github.com/mongodb/mongo-csharp-driver/downloads 项目地址: https://github.com/mongodb/mong ...
- Python中执行变量而非字符串
Python中执行变量而非字符串 设想这样的场景,你需要大型项目的开发.但是项目的开发第一步是啥? 当然是import导入了. ...but............ 默认 import 后面跟着字符串 ...