qq_44890369
2021-05-25 19:46
采纳率: 100%
浏览 41

如何提取一个固定格式字符串的指定内容

比如说有一个字符串“X1000_1”,现在我想提取下划线之前的内容“X1000”,应该用什么方法呢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • CSDN专家-黄老师 2021-05-25 19:46
    已采纳
    import re
    str = "a123b"
    print(re.findall(r"a(.+?)b",str))
    #输出['123']
    
    import re
    str = "a123b456b"
     
    print(re.findall(r"a(.+?)b", str))
    #输出['123']
    #?控制只匹配0或1个,所以只会输出和最近的b之间的匹配情况
     
    print(re.findall(r"a(.+)b", str))
    #输出['123b456']
     
    print(re.findall(r"a(.*)b", str))
    #输出['123b456']
    
    
    1 打赏 评论
  •  最简单的是以“_”分割字符串,取第一个元素

    s = "X1000_1"
    s1 = s.split("_")[0]
    print(s1)

    如果以内容的格式来提取就要用到正则表达式。

    import re
    
    s = "X1000_1"
    # 提取X之后跟多个数字
    s1 = re.findall(r'X\d+', s)
    print(s1)
    
    s = "X1000_1"
    # 提取字母之后跟多个数字
    s1 = re.findall(r'[A-Za-z]\d+', s)
    print(s1)

    正则表达式一般都需要针对具体的需求来写,建议你自己学习一下正则表达式

    1 打赏 评论
  • 回答: 如果一个字符串里有好多个下划线,而想获取最后一个下划线之前的所有字符该怎么办

    import re
    
    s = "AA_X_1000_1"
    # 取最后一个下划线之前的所有字符
    s1 = re.findall(r'(.+)_', s)
    print(s1[0])
    

    也可以是删除最后一个下划线和之后的所有字符

    import re
    
    s = "AA_X_1000_1"
    # 删除最后一个下划线和之后的所有字符
    s1 = re.sub(r'_[^_]*$', '', s)
    print(s1)
    
    打赏 评论
  • 有问必答小助手 2021-05-26 11:06

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题