【问题标题】:python: split string after a characterpython:在字符后分割字符串
【发布时间】:2011-10-05 11:52:03
【问题描述】:

我有一个带有两个“-”的字符串

467.2-123-hdxdlfow

我想删除第二个“-”之后的所有内容,以便得到“467.2-123”。最好的方法是什么?

【问题讨论】:

    标签: python regex string


    【解决方案1】:
    before, sep, after = theString.rpartition("-")
    

    这会拆分 str 关于最后一次出现的“-”,您的答案将是变量 before

    【讨论】:

      【解决方案2】:
      In [6]: "-".join('467.2-123-hdxdlfow'.split('-')[0:2])
      Out[6]: '467.2-123'
      

      【讨论】:

        【解决方案3】:
         >>> s = '467.2-123-hdxdlfow'
         >>> s[:s.rfind('-')]
         '467.2-123'
        

        【讨论】:

        • 我最喜欢这个,因为它适用于任意数量的破折号 - 它会摆脱最后一个以及它之后的任何东西:)
        【解决方案4】:

        如果您只关注最后一个元素,我修改了 spicavigo 的答案以排除最后一个元素。

        a='467.2-123-hdxdlfow'
        '-'.join(a.split('-')[:-1])
        

        【讨论】:

          【解决方案5】:
          a='467.2-123-hdxdlfow'
          '-'.join(a.split('-')[:2])
          

          如果你正好有 2 个'-',你可以这样做

          a.rsplit('-',1)[0]
          

          【讨论】:

            【解决方案6】:

            试试这个正则表达式

            ([^-]*-[^-]*)-.*
            

            并询问第一个捕获组的结果(示例中为(...))。

            【讨论】:

              【解决方案7】:

              你可以试试这个result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow')467.2-123

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-06-12
                • 2017-03-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-12-27
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多