首页 > 其他分享 >如何批量去掉文本的括号前后缀内容

如何批量去掉文本的括号前后缀内容

时间:2023-12-29 17:22:19浏览次数:37  
标签:code 后缀 text inside 括号 文本

  静下心想想,日常的工作中,你们有没有遇到过这样的场景:ERP系统中的客户名称是按照项目、工程来命名的,我们应该如何通过这样的客户名称来提取得到真正的公司名称?

这里,我用AIGC随机生成了一些样本。

1. (海生项目)卓越光电科技有限公司
2. (蓝海贸易项目)天翼有限公司
3. 鸿图科技(武汉)有限公司
4. (生态农业项目)绿源农业发展有限公司
5. 天合化工(长沙)有限公司
6. (智慧城市项目)城网科技有限公司
7. (未来能源项目)光明新能源科技有限公司
8. 龙腾(西安)重工有限公司
9. (健康医疗项目)(智慧医疗项目)康宁生物科技有限公司
10. (国际物流项目)海运达物流有限公司

  仔细分析上面的样本,它其实涉及到以下几个技术问题:

  • 括号可能包含全半角符号,都要可以替换;
  • 括号可能在中间,属于公司名称的一部分,这类括号包括里面的内容不应该去除;
  • 文本可能在前缀和后缀都分别有括号,都需要能够去除。
  • 前缀括号有可能不止一组,需要能反复去除,直到获取到真实的公司名称。

  面对这些问题,作为程序员,首先想到的就是正则表达式,快速匹配到前后缀括号的内容,然后替换为空文本。再利用循环,一遍遍地把替换后的文本重新去查找前后缀,直至文本的第一个字符以及最后一个字符都不再是括号。

另外,我们还需要编写一个方法,可以快速将全角符号转换为半角符号。

下面是小爬用python语言做的具体功能实现,各位童鞋不妨参考下思路:

文本批量全角转半角

def Q2B(uchar):
    """单个字符 全角转半角"""
    inside_code = ord(uchar)
    if inside_code == 0x3000:
        inside_code = 0x0020
    else:
        inside_code -= 0xfee0
    if inside_code < 0x0020 or inside_code > 0x7e: #转完之后不是半角字符返回原来的字符
        return uchar
    return chr(inside_code)

def stringQ2B(ustring):
    """把字符串全角转半角"""
    return "".join([Q2B(uchar) for uchar in ustring])

 

文本批量去除括号前后缀(保留中间的括号)

 

def remove_outer_parentheses(text):
    # 使用一个正则表达式反复去除开头的括号和其内容
    while True:
        new_text = re.sub(r'^\([^()]*\)', '', text)
        if new_text == text:  # 如果没有更多匹配到开头的括号,跳出循环
            break
        text = new_text
    
    # 使用一个正则表达式反复去除结尾的括号和其内容
    while True:
        new_text = re.sub(r'\([^()]*\)$', '', text)
        if new_text == text:  # 如果没有更多匹配到结尾的括号,跳出循环
            break
        text = new_text
    
    return text

 

大胆验证一下代码的可靠性,结果如下:

 

  AI时代了,作为新时代码农,不要再局限于只能判断两个文本是否严格相等了。下次碰到业务端这类需求,给文本稍微加点前后缀,我们还要能用程序准确判断,它还是那个它!

答应我,马上迈入激动人心的2024年了,挑战下自己,好吗?

快来关注本公众号 获取更多爬虫、数据分析的知识!

标签:code,后缀,text,inside,括号,文本
From: https://www.cnblogs.com/new-june/p/17935327.html

相关文章

  • python json.dump 将字典写文件json文件后多了一个花括号"}",读取时报错:json.decoder.
    问题复现我的字典格式:importjsond={'Demo':{'Total_Result':'Pass','info':{'test3':'Pass'}},'10.0.0.111':{'Total_Result':'Pass','info':{'test......
  • python 有效的括号 多种解法
    解法一:使用栈思路:创建一个空栈。遍历输入字符串的每个字符。如果字符是左括号('(','{','['),则将其推入栈中。如果字符是右括号(')','}',']'),则检查栈是否为空。如果栈为空,则返回False,因为没有与之匹配的左括号。如果栈不为空,则弹出栈顶元素,并判断它与当前右括号是否匹配。如果不匹......
  • css多行文本省略 line-clamp
    css多行文本省略line-clamp一行文本内容溢出的省略例子:<divclass="container"style="width:200px;outline:1pxsolidred"><divclass="description"style="overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"&g......
  • System&Math&包装类&文本扫描器&String总结
    总结System类1、注意设计类的时候,不要将类名设计为和jdk提供的类名一样掌握属性和方法属性:err:获取标准的输出流(打印错误信息)out:标准的输出流,打印任意信息in:获取标准的输入流,可以获取控制台输入的信息方法:(全部是类方法)1、currentTimeMillis():获取当前时间,以毫秒来表示......
  • 【程序】[API]一言获取_纯文本返回
    程序页面程序作者:盼星辰使用教程API设置程序内置三个api,如需使用,只需API选择中,前三项勾选其中一项即可,如需使用其他API,本程序允许自定义api,注意,使用自定义api时,请确保自定义的api返回内容为纯文本形式,一般的api调用返回形式可能为json或者是txt形式,请确保,返回形式为txt。获......
  • 常见的文件后缀对应的ContentType
    #LicensedtotheApacheSoftwareFoundation(ASF)underoneormore#contributorlicenseagreements.SeetheNOTICEfiledistributedwith#thisworkforadditionalinformationregardingcopyrightownership.#TheASFlicensesthisfiletoYouunderth......
  • 人工智能生成文本检测在实践中使用有效性探讨
    人工智能辅助撰写文章的技术现在无处不在!ChatGPT已经解锁了许多基于语言的人工智能应用程序,人工智能在任何类型的内容生成中的使用都已经达到了以前前所未有的高度。在诸如创意写作之类的工作中,人们被要求创造自己的内容。但是由于人工智能在这些任务中的普及和有效性,很人工智能......
  • ueditor 富文本编辑器粘贴图片时让图片居中
    需求今天碰到个需求,客户要求在把微信公众号中的文章粘贴到富文本框时将文字向左对齐,图片居中作为一个已经几年没碰前端的我来说有点头大,百度google了一番未果,只好自己研究去了花了2个多小时终于搞定话不多说,直接上代码主要是retainOnlyLabelPasted和filterRulesretainOnlyLabe......
  • TinyMCE富文本编辑器粘贴图片自动上传问题解决
    TinyMCE编辑器支持粘贴图片,但是自动会将图片转换成base64编码,这样将内容提交到后台,数据会很大。  图|TinyMCE本文内容配置TinyMCE(版本:5.10.0)向编辑器中粘贴图片自动上传到后台,以下为配置代码:tinymce.init({selector:'#textarea',plugins:'previewautolink......
  • 文本文件的上传
    文本文件的上传:推荐:在Windows上编辑,然后上传到Linux 使用notepad++或者其他编辑器 文本文件的换行符:Windows:\r\nLinux:\n可以在Notpad++里观察到此区别视图|显示符号|显示行尾符换行符的转换:编辑|文档格式转换|转......