Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 之后移除所有内容`*`_Regex_R_Substring - Fatal编程技术网

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
来代替吗?我可以同意,但我认为你的评论和发布的答案都有点苛刻。非常感谢你的帮助。