繁体   English   中英

如何在R中使用grep grep以#*开头的行

[英]How to grep a line start with #* using grep in R

我有一个关于 R 中的 Grep 的问题:如何指定元素以#*开头, #* (不带空格)某个字符或数字?

titre_index <- grep('#\*', test)

错误:'*' 是无法识别的以“'#*”开头的字符串中的转义

为了避免计算出有多少反斜杠使用[*]来匹配一个星号的问题。

grep("^#[*]", x, value = TRUE)

另一种完全不使用任何正则表达式的方法是:

x[ substr(x, 1, 2) == "#*" ]

要么

x[ startsWith(x, "#*") ]

你的意思是\\\\* 第二个反斜杠转义 R 字符串中的反斜杠; 然后组合反斜杠转义正则表达式中的星号。

R首先需要理解字符串:

cat('\\*')
# \*

然后将 R 理解的字符串传递给正则表达式引擎,该引擎需要对星号进行转义以将其与通配符*区分开来。

关于您尝试匹配的完整模式,我不确定我是否理解:

以#* 开头,后面跟着一些字符或数字(没有空格)

但我认为你想要#*然后是一个字母或数字,在这种情况下,这符合要求:

"^#\\*[0-9a-zA-Z]"

也许更清晰一些:

"^#[*][[:alnum:]]"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM