【问题标题】:Spit string and remove rest of string after [n] character在 [n] 个字符后吐出字符串并删除其余字符串
【发布时间】:2019-01-10 09:20:17
【问题描述】:

我有一个字符串srting=123d*gss6agn 我如何在= 之后删除所有内容并留空 我应该使用 re 或 string 模块,我该如何解决它

【问题讨论】:

  • print("srting=123d*gss6agn".split("=")[0]) ?
  • 你也想去掉等号吗?

标签: python regex string


【解决方案1】:

使用分区():

    s='srting=123d*gss6agn'
    s,separator,remainder=s.partition("=")
    print(s)
Out:
   'srting'

(如果缺少“=”也不例外。)

只是玩:

    import re
    re.sub(r"(?<==).*",lambda m: m[0][::-1],s)
    Out: 'srting=nga6ssg*d321'

(?<==) lookbehind ?<= for'='; so '=' isn't captured for replacing;
sub's 2nd arg can be a function, too, which got the match object, here 'm'.

【讨论】:

    【解决方案2】:

    试试这个:

    a="srting=123d*gss6agn"
    a.split("=")[0]+"="
    

    或者这个:

    a="srting=123d*gss6agn"
    a[:a.index("=")+1]
    

    打开文件:

    with open("path/to/your/file.txt","r") as f:
        a=f.read() # and then use an option above
    

    【讨论】:

    • 如果我要拆分的字符串在其他文件夹.txt
    【解决方案3】:

    如果您想使用正则表达式...虽然我个人会选择其他答案。

    import re 
    a = "srting=123d*gss6agn"
    result = re.sub(r'=.','=',a)
    

    用一个等号替换等号后的所有文本。

    【讨论】:

    • 更正它:r'=.'必须 r'=.*'
    猜你喜欢
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2020-10-08
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多