Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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
R:如何提取某个关键短语前后的子字符串?_R_String_Substring_Match - Fatal编程技术网

R:如何提取某个关键短语前后的子字符串?

R:如何提取某个关键短语前后的子字符串?,r,string,substring,match,R,String,Substring,Match,我试图将一个长字符串分成几个关键短语前后的因素。第一次出现时,我可以将其部分拆分,但不能将其全部拆分。此外,之前没有任何关于模式匹配的问题能够为我回答这个问题 文本的示例行: 一名球员A在一个疯狂的球场上前进到第三名。2球员B在一次失误中前进到第二名。 部分解决方案: gsub“前进。*$”,1名球员A在一个疯狂的球场上前进到第三名。2玩家B在出现错误时前进到第二位。,[\\w]*前进 这将返回: 1名球员A 不过,我想: [1] 1玩家A前进到第三名[2]2玩家B前进到第二名 作为两个独立的输

我试图将一个长字符串分成几个关键短语前后的因素。第一次出现时,我可以将其部分拆分,但不能将其全部拆分。此外,之前没有任何关于模式匹配的问题能够为我回答这个问题

文本的示例行:

一名球员A在一个疯狂的球场上前进到第三名。2球员B在一次失误中前进到第二名。 部分解决方案:

gsub“前进。*$”,1名球员A在一个疯狂的球场上前进到第三名。2玩家B在出现错误时前进到第二位。,[\\w]*前进 这将返回:

1名球员A 不过,我想:

[1] 1玩家A前进到第三名[2]2玩家B前进到第二名 作为两个独立的输出字符串

我不知道在短语之间提取文本的技巧。。。还有球员号码


提前谢谢你

数字后面总是有一个单词吗?如果是这样,这将起作用:

library(stringr)

str_match_all(str1, "(#.*? to \\S+)")[[1]][, 2]
# [1] "#1 Player A advances to third"  "#2 Player B advances to second"

数字后面总是有一个词吗?如果是这样,这将起作用:

library(stringr)

str_match_all(str1, "(#.*? to \\S+)")[[1]][, 2]
# [1] "#1 Player A advances to third"  "#2 Player B advances to second"

如果我们假设有趣的部分总是以a开头,在前进到之后以一个单词结尾,那么我们可以做:


s如果我们假设有趣的部分总是以a开头,在前进到之后以一个单词结尾,那么我们可以做:


s librarystringr?是的,数字后面总是有一个单词。谢谢你的帮助!librarystringr?是的,数字后面总是有一个词。谢谢你的帮助!这是最好的解决方案,因为它不需要任何额外的库!感谢您的帮助,尤其是对regex的帮助,因为我需要做更多的工作;-。这是最好的解决方案,因为它不需要任何额外的库!感谢您的帮助,尤其是对regex的帮助,因为我需要做更多的工作;-。