【问题标题】:Replace a string with first few characters [duplicate]用前几个字符替换字符串[重复]
【发布时间】:2020-09-14 19:01:35
【问题描述】:

假设我有一个类似的模式 -

Str = "#sometext_any_character_including_&**(_etc_blabla\\s"

现在我想用

替换上面的文字
"#some\\s"

即我只想保留first 4 characterstrailing spacebeginning #。有没有r 的方法可以做到这一点?

任何指针都将受到高度赞赏。

【问题讨论】:

    标签: r gsub stringr


    【解决方案1】:

    我会使用正则表达式进行提取。如果您想要 \\s 之后的所有文本,我会用 ex 捕获它们:

    import re
    
    # Extract
    pattern = re.compile("(#[a-z]{4}|\\\s)")
    my_match = "".join(pattern.findall(my_string))
    

    【讨论】:

    • 糟糕,现在才看到这个 Q 是针对 R 而不是 python...
    【解决方案2】:

    sub 的选项

    sub("^(#.{4}).*(\\\\s)$", "\\1\\2", Str)
    #[1] "#some\\s"
    

    【讨论】:

      【解决方案3】:

      str_replace(字符串、模式、替换)

      str_replace_all(字符串、模式、替换)

      你可以使用

      【讨论】:

      • 我可以使用它们,但在我的情况下,替换词实际上是可变的,它是提供的字符串的前几个字符
      • 所以你可以用这个。 substr(Str, start = 1, stop = 3)
      猜你喜欢
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2011-02-10
      • 2015-03-17
      • 2018-11-15
      • 1970-01-01
      • 2011-10-10
      • 2021-01-21
      相关资源
      最近更新 更多