当前位置: 首页 > 编程笔记 >

正则表达式实现添加、删除、替换三种功能

高宸
2023-03-14
本文向大家介绍正则表达式实现添加、删除、替换三种功能,包括了正则表达式实现添加、删除、替换三种功能的使用技巧和注意事项,需要的朋友参考一下

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

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

# -*- conding:utf-8 -*-
import re
txt = '这个池子的体积大约是34立方米容积'
'''role为匹配规则,re_out为替换部分格式为“\1(替换部分)”'''
def Replace(role,re_out):
 out = re.compile(role)
 String_out = out.sub(re_out,txt)
 print(String_out)
Replace(r'(这个池子的体积大约是34)(.*)',r'\1平方米')
'''
role为匹配规则,num为将要删除的元素(从1开始)
'''
def Delete(role,num):
 out = re.search(role,txt).group(num)
 string = txt.split(out)
 String_out = ''.join(string)
 print(String_out)
Delete('(这个池子的体积大约是34)(.*)(容积)',2)
def Add(role,re_out):
 out = re.compile(role)
 String_out = out.sub(re_out,txt)
 print(String_out)
Add(r'(这个池子的体积大约是34)(.{0})',r'\1的')

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

总结

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

 类似资料:
  • 问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪

  • 本文向大家介绍JS使用正则表达式实现关键字替换加粗功能示例,包括了JS使用正则表达式实现关键字替换加粗功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS使用正则表达式实现关键字替换加粗功能的方法。分享给大家供大家参考,具体如下: 运行效果截图如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://to

  • 问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。

  • 通过好奇心,有没有办法用Java Stream编写它?

  • Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提

  • 问题内容: 我是Java新手。作为.Net开发人员,我非常习惯Regex.Net中的类。Regex(正则表达式)的Java实现不错,但是缺少一些关键功能。 我想为Java创建自己的帮助程序类,但我想也许已经有一个可用的类了。那么,有没有免费的,易于使用的Java正则表达式产品可用,还是我应该自己创建一个? 如果我要编写自己的课程,您认为我应该在哪里共享该课程,以供其他人使用? [编辑] 有人抱怨我