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

Regex 从循环模式中提取未知单词

Regex 从循环模式中提取未知单词,regex,r,Regex,R,我有一个叫做df的数据框,关于西班牙一家重要报纸《先锋报》的文章。关键是我想提取每篇文章属于哪个类别。仔细查看所提供的链接,我发现有一种反复出现的模式,下面是一个示例: status_link www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html

我有一个叫做df的数据框,关于西班牙一家重要报纸《先锋报》的文章。关键是我想提取每篇文章属于哪个类别。仔细查看所提供的链接,我发现有一种反复出现的模式,下面是一个示例:

status_link
 www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html                                                                             
 www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html                                                                                       
 www.lavanguardia.com/ciencia/20150928/54436850805/metastasis-cerebro-perfil-genetico-tratamiento-vall-d-hebron.html                                                                  
 videos.lavanguardia.com/politica/elecciones-catalanas/20150928/54437688908/gobierno-debe-reaccionar-antes-elecciones-generales.html                                                                                                                                    
 www.lavanguardia.com/economia/20150928/54436887975/audi-millones-coche-dieselgate.html                                                                                                  
 www.lavanguardia.com/vida/20150928/54437702392/claves-sobreexponer-hijos-internet.html                                                                                           
 www.lavanguardia.com/ciencia/20150928/54437643626/superluna-roja-de-sangre.html 
请注意,第一个斜杠后的第一个单词对应于类别(西班牙语):Moda(时尚)、Local、science、economics、life等

www.lavanguardia.com/de moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html
www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html

我想提取每个单词,并在每个链接旁边创建一个新变量,为每个链接分配相应的类别。恐怕我不知道可能有多少类别,但这种模式是反复出现的。还请注意,有时链接会有所不同,请参见此处发布的第四个链接,但它仍然保持相同的结构

我一直在尝试所有建议,但在这种情况下如何实现包regex(或其他可能有用的包)对我来说不是很清楚

如果有任何建议,我将不胜感激

编辑

我把数据上传到这里,这样你就可以使用它了。我感兴趣的专栏是:状态链接

你可以试试这个(正则表达式方法)

>x y=sub(“^[^\\/]+\\/([^\\/]+).$”,“\\1”,x)
>数据帧(x,y)
xy
#1 www.lavanguardia.com/de-moda/moda/infantil/20150928/54437701110/freya-fossaceco-it-girl-8-meses.html de moda
#2 www.lavanguardia.com/local/barcelona/20150927/54437681718/resultados-elecciones-barcelona.html local
#3 www.lavanguardia.com/ciencia/20150928/54436850805/transference-cerbiro-perfil-genetico-trataminto-vall-d-hebron.html ciencia
#4 videos.lavanguardia.com/politica/elecciones-catalanas/20150928/54437688908/gobierno-debe-reaccionar-antes-elecciones-generales.html politica
#5 www.lavanguardia.com/economia/20150928/54436887975/audi-millones-coche-dieselgate.html economia
#6 www.lavanguardia.com/vida/20150928/54437702392/claves-sobreexponer-hijos-internet.html vida
#7 www.lavanguardia.com/ciencia/20150928/54437643626/superluna-roja-de-sangre.html ciencia
根据你的评论,试试看

> tmp <- read.csv("LaVanguardia_facebook_statuses.csv")
> sub("^(?:https?:\\/\\/)?[^\\/]+\\/([^\\/]+).*$", "\\1", tmp[,5])
#[1] "gente"         "series"        "deportes"      "television"    "vangdata"      "series"        "lacontra"      "participacion" "vida"          "comer"        
#[11] "vivo"          "local"         "politica"      "sucesos"       "natural"       "hemeroteca"    "natural"       "local"         "vida"          "fans"         
#[21] "television"    "viral"         "natural"       "deportes"      "vida"    
>tmp sub(“^(?:https?:\\/\\/)?[^\/]+\\/([^\\/]+).*$”,“\\1”,tmp[,5])
#[1] “gente”“series”“驱逐”“TV”“vangdata”“series”“lacontra”“Participation”“vida”“comer”
#[11] “维梧”“本地”“politica”“sucesos”“天然”“河马”“天然”“本地”“维达”“粉丝”
#[21]“电视”“病毒”“自然”“驱逐”“维达”

为什么不以易于粘贴的形式提供数据?或者不提供
regex
strsplit(status\u link,“/”[[1]][2]
如果我手动插入数据,这个答案非常有效,但我无法使用数据框的列。我尝试过所有类型的数据转换,但我不能。我在这里上传了数据,所以你可以使用它:@adrian1121原因是你的链接中有
http
等。我正在更新答案
> tmp <- read.csv("LaVanguardia_facebook_statuses.csv")
> sub("^(?:https?:\\/\\/)?[^\\/]+\\/([^\\/]+).*$", "\\1", tmp[,5])
#[1] "gente"         "series"        "deportes"      "television"    "vangdata"      "series"        "lacontra"      "participacion" "vida"          "comer"        
#[11] "vivo"          "local"         "politica"      "sucesos"       "natural"       "hemeroteca"    "natural"       "local"         "vida"          "fans"         
#[21] "television"    "viral"         "natural"       "deportes"      "vida"