经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 其他 » 正则表达式 » 查看文章
正则表达式实现添加、删除、替换三种功能
来源:jb51  时间:2018/9/25 19:05:12  对本文有异议

最近呢,公司让写一个组件,要求用正则表达式构建一个中文的匹配组件,许多问题就来了,大多是用自动机来构建一个正则表达式的引擎,小编虽然大学的时候学过编译原理,可奈何现在已经忘得差不多了,只能通过现有的正则表达式来进行功能实现。

下面的代码呢实现了通过用正则表达式来对某一个句子的添加、替换、删除三种操作,不知道这个适不适合大家的口味,反正小编已经做好让公司头批评的准备了,因此小编是在是现学不来呀。

  1. # -*- conding:utf-8 -*-
  2. import re
  3. txt = '这个池子的体积大约是34立方米容积'
  4. '''role为匹配规则,re_out为替换部分格式为“\1(替换部分)”'''
  5. def Replace(role,re_out):
  6. out = re.compile(role)
  7. String_out = out.sub(re_out,txt)
  8. print(String_out)
  9. Replace(r'(这个池子的体积大约是34)(.*)',r'\1平方米')
  10. '''
  11. role为匹配规则,num为将要删除的元素(从1开始)
  12. '''
  13. def Delete(role,num):
  14. out = re.search(role,txt).group(num)
  15. string = txt.split(out)
  16. String_out = ''.join(string)
  17. print(String_out)
  18. Delete('(这个池子的体积大约是34)(.*)(容积)',2)
  19. def Add(role,re_out):
  20. out = re.compile(role)
  21. String_out = out.sub(re_out,txt)
  22. print(String_out)
  23. Add(r'(这个池子的体积大约是34)(.{0})',r'\1的')

下面的图片是小编运行这三个函数得到的结果,大家可以看看,如果有需要的可以参考一下,另外,小编需要人告诉我这个正则表达式如何用自动机来实现,他的原理是什么,欢迎大家的留言哦。

总结

以上所述是小编给大家介绍的正则表达式实现添加、删除、替换三种功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号