Regex 之后移除所有内容`*`
我想知道如何删除数据中Regex 之后移除所有内容`*`,regex,r,substring,Regex,R,Substring,我想知道如何删除数据中*之后的所有内容。我有这样的值:IGHV4-59*01和IGHV4-4*02,只想要IGHV4-59和IGHV-4。我尝试使用sub,但没有得到预期的结果: sub("*.*" , " ", data_head$v_segment) ## [1] " " " " " " " " " " " " 而不是在*之后删除所有内容,它完全删除了所有内容。谢谢。试试这个。基本上,*是正则表达式中的元字符,因此如果希望引擎将其视为实际标点字符,则需要对其进行转义 gsub("\\*.*
*
之后的所有内容。我有这样的值:IGHV4-59*01
和IGHV4-4*02
,只想要IGHV4-59
和IGHV-4
。我尝试使用sub,但没有得到预期的结果:
sub("*.*" , " ", data_head$v_segment)
## [1] " " " " " " " " " " " "
而不是在*之后删除所有内容,它完全删除了所有内容。谢谢。试试这个。基本上,
*
是正则表达式中的元字符,因此如果希望引擎将其视为实际标点字符,则需要对其进行转义
gsub("\\*.*", "", c("IGHV4-59*01", "IGHV4-4*02")) # You can use `sub` too as per comment
## [1] "IGHV4-59" "IGHV4-4"
试试这个。基本上,
*
是正则表达式中的元字符,因此如果希望引擎将其视为实际标点字符,则需要对其进行转义
gsub("\\*.*", "", c("IGHV4-59*01", "IGHV4-4*02")) # You can use `sub` too as per comment
## [1] "IGHV4-59" "IGHV4-4"
您的正则表达式失败,因为在正则表达式中,
*
是一个特殊字符,即使前面没有其他字符。因此,它需要逃脱“\\*.*”
是您想要的模式。您的正则表达式失败,因为*
是正则表达式中的特殊字符,即使前面没有其他字符。因此,它需要逃脱<代码>“\\*.*”是您想要的模式。它没有按预期工作,因为您需要转义*
以匹配文本
sub("\\*.*", "", data_head$v_segment)
它没有按预期工作,因为需要转义
*
以匹配文本
sub("\\*.*", "", data_head$v_segment)
这实际上没有什么区别,但是
gsub
在这里是完全不必要的,因为模式在第一次出现“*”
之后就已经匹配了所有内容。你说的“完全不必要”是什么意思?你的意思是我可以用sub
来代替吗?我可以同意,但我认为你的评论和发布的答案都有点苛刻。非常感谢你的帮助。这并没有什么区别,但是gsub
在这里是完全没有必要的,因为在第一次出现“*”
之后,模式已经匹配了所有内容。你说的是什么“完全没有必要”?你的意思是我可以用sub
来代替吗?我可以同意,但我认为你的评论和发布的答案都有点苛刻。非常感谢你的帮助。