[英]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.