提取字符串长向量

问题描述 投票:0回答:1

这似乎是一个简单的问题,但我无法找到解决这个问题的方法。

我有一个位于单个长向量中的文本文件,其表达式如下:

&nuSessao=26.2023
&nuSessao=21.2013.N
&nuSessao=24.2023
&Data=22/12/2023
&txFaseSessao=Ordem do Dia
&txFaseSessao=Fechamento

还有许多其他人。

我想以给定变量的所有实例的方式提取此信息并将其放入向量中:

[1] "&nuSessao=26.2023"   "&nuSessao=21.2013.N" "&nuSessao=24.2023" 

到目前为止,我已尝试对每个变量执行以下命令:

results<-stringr::str_extract_all(MyPage, "&amp;nuSessao=*") |> unlist()

但是我拥有的只是搜索变量的精确马赫向量,而不是我需要的整个表达式:

results
 [1] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
 [5] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
 [9] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[13] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[17] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[21] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[25] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[29] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[33] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[37] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[41] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[45] "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao=" "&amp;nuSessao="
[49] "&amp;nuSessao=" "&amp;nuSessao="

我将不胜感激任何帮助

r regex string character stringr
1个回答
0
投票

在基本 R 中,您可以在

strsplit
上使用
\n
来拆分大字符串,然后使用
grep
来识别具有所需模式的字符串:

strng <- "&amp;nuSessao=26.2023
&amp;nuSessao=21.2013.N
&amp;nuSessao=24.2023
&amp;Data=22/12/2023
&amp;txFaseSessao=Ordem do Dia
&amp;txFaseSessao=Fechamento"

mySplits <- strsplit(strng, "\n")[[1]]
# [1] "&amp;nuSessao=26.2023"          "&amp;nuSessao=21.2013.N"        "&amp;nuSessao=24.2023"         
# [4] "&amp;Data=22/12/2023"           "&amp;txFaseSessao=Ordem do Dia" "&amp;txFaseSessao=Fechamento"  

grep("nuSessao", mySplits, value = TRUE)
# [1] "&amp;nuSessao=26.2023"   "&amp;nuSessao=21.2013.N" "&amp;nuSessao=24.2023"  

既然您标记了

stringr
,类似的方法就是使用
str_split
str_detect

mySplits <- str_split(strng, "\n")[[1]]
mySplits[str_detect(mySplits, "nuSessao")]
© www.soinside.com 2019 - 2024. All rights reserved.