【发布时间】:2020-09-14 19:01:35
【问题描述】:
假设我有一个类似的模式 -
Str = "#sometext_any_character_including_&**(_etc_blabla\\s"
现在我想用
替换上面的文字"#some\\s"
即我只想保留first 4 characters 和trailing space 和beginning #。有没有r 的方法可以做到这一点?
任何指针都将受到高度赞赏。
【问题讨论】:
假设我有一个类似的模式 -
Str = "#sometext_any_character_including_&**(_etc_blabla\\s"
现在我想用
替换上面的文字"#some\\s"
即我只想保留first 4 characters 和trailing space 和beginning #。有没有r 的方法可以做到这一点?
任何指针都将受到高度赞赏。
【问题讨论】:
我会使用正则表达式进行提取。如果您想要 \\s 之后的所有文本,我会用 ex 捕获它们:
import re
# Extract
pattern = re.compile("(#[a-z]{4}|\\\s)")
my_match = "".join(pattern.findall(my_string))
【讨论】:
R 而不是 python...
sub 的选项
sub("^(#.{4}).*(\\\\s)$", "\\1\\2", Str)
#[1] "#some\\s"
【讨论】:
str_replace(字符串、模式、替换)
或
str_replace_all(字符串、模式、替换)
你可以使用
【讨论】: