Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 Rstudio_R_Regex_String_Extraction - Fatal编程技术网

提取某些字符前的单词RegEx Rstudio

提取某些字符前的单词RegEx Rstudio,r,regex,string,extraction,R,Regex,String,Extraction,我有这样一个词,“山姆买昂贵的玩具作为125898652”。 我想摘录“as”之后的单词,即“125898652” 我正在使用 (?<=as\s)+[^\s]+ 有人能给我解释一下为什么正则表达式在R中不同,以及如何使它工作。非常感谢您使用sub sub(".*as\\s(\\w+).*", "\\1", "sam buy expensive toys as 125898652") #[1] "125898652" 或lookbehind regex stringr::str_extr

我有这样一个词,
“山姆买昂贵的玩具作为125898652”
。 我想摘录“as”之后的单词,即“125898652”

我正在使用

(?<=as\s)+[^\s]+
有人能给我解释一下为什么正则表达式在R中不同,以及如何使它工作。非常感谢您使用
sub

sub(".*as\\s(\\w+).*", "\\1", "sam buy expensive toys as 125898652")
#[1] "125898652"
或lookbehind regex

stringr::str_extract("sam buy expensive toys as 125898652", "(?<=as\\s)\\w+")
#[1] "125898652"

对于基R,给定字符串
s unlist(strsplit(s,split=“(?
stringi::stri_extract_first_regex)(“sam购买昂贵的玩具,如125898652”)(?我对每个双黑斜杠都使用了双反斜杠,但仍然不起作用第一个非常有效,但后面没有返回数字。或者,@yuliansen你能分享一个例子吗?sam购买昂贵的玩具作为12898445697.00,它只返回128984。非常感谢你的回答,这行吗?
sub(“*as\\s(\\d+\.?\\d+.*”、“\\1”、gsub(“,”、“,x))
其中
x
是您的字符串。我不知道该如何感谢您,但您确实帮了我。我稍后会深入了解sub和gsub。非常感谢您
Error in stri_extract_first_regex(string, pattern, opts_regex = opts(pattern)) : 
  Syntax error in regexp pattern. (U_REGEX_RULE_SYNTAX)
sub(".*as\\s(\\w+).*", "\\1", "sam buy expensive toys as 125898652")
#[1] "125898652"
stringr::str_extract("sam buy expensive toys as 125898652", "(?<=as\\s)\\w+")
#[1] "125898652"
x <- "sam buy expensive toys as 128984,45697.00"
sub(".*as\\s(\\d+\\.?\\d+).*", "\\1",gsub(',', '', x))
#[1] "12898445697.00"
> gsub(".*?as\\s","",s)
[1] "125898652
> unlist(strsplit(s,split = "(?<=as\\s)",perl = T))[2]
[1] "125898652"