正在抓取\n1与grepl在r中

kb5ga3dv  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个以\n1.\ntext开头的字符串向量,我希望过滤所有以\n1.开头的字符串样本:

[1] "\n1. Morgenhanen matter"
[2] "\n1. Morgenstund har guld"
[3] "\nMorgensange for børn be"

但我似乎无法理解那些以\n1开头的句子。我现在的情况是:

grepl("^['\\\\']n1", df$text)

但它对所有句子都返回false ...
最后我想得到这样的结果

library(tidyverse)

df %>% 
   filter(those sentences starting with \n1)

对不起,我不是最好的正则表达式在r.

6qftjkof

6qftjkof1#

您可以:

library(dplyr)

df %>%
  filter(df, grepl("^\\n1", text))

输出量:

text
1   \n1. Morgenhanen matter
2 \n1. Morgenstund har guld

数据类型

df <- data.frame(text = c("\n1. Morgenhanen matter", 
                      "\n1. Morgenstund har guld", 
                      "\nMorgensange for børn be"))
c3frrgcw

c3frrgcw2#

请注意,字符串中的\n是一个换行符\x0A

  • ^-字符串开始
  • ['\\\\']-一个'\字符
  • n1-一个n1字符串。

因此,如您所见,您的模式与换行符不匹配。
您可以使用

grep("^\\n1", df$text, value=TRUE)

请参阅R demo

text <- c( "\n1. Morgenhanen matter", "\n1. Morgenstund har guld", "\nMorgensange for børn be")
grep("^\\n1", text, value=TRUE)

输出量:

[1] "\n1. Morgenhanen matter"   "\n1. Morgenstund har guld"

这里,"^\\n1"^\n1正则表达式模式,它匹配

  • ^-字符串开始
  • \n-换行
  • 1-一个1字符

相关问题