grep \s 返回空白
grep \s returning blank
语言:R,IDE:R Studio
我正在编写一个脚本来从 pdf 文件中提取和排除特定信息(a.k.a 一个巨大的字符串)。我使用 grep 将字符串拆分为我想要的页面。我希望进一步缩小它。我的进一步瘦身脚本是...
variablename <- grep("Additional Information:(?! )", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
这完全符合我的要求。然而,我是 R 和正则表达式的新手,所以我想练习并尝试了以下方法...
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
结果是 - 错误:'\s' 是在以“"Additional Information:(?!\s"
开头的字符串中无法识别的转义符
和
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
结果是一个空变量
> variablename
character(0)
这是怎么回事?为什么 " " 有效,但字符串 \s 的转义字符无效?
啊,这是一个有趣的问题。
模式 "Additional Information:(?! )"
不会 select 个包含“:”后的单个 space 的字符串,但使用 (?!\s)
不会 select 个包含单个 space 的字符串任意 白色space 字符,例如制表符。一种可能的解释是,您正在解析的向量中有 "non-space" 形式的白色 space。
AnyAdditionalInfoPages <- c("Additional Information: page 20", # one space
"Additional Information: page 7", # two spaces
"Additional Information:\tpage 50", # tab
"Additional Information:\npage 60") # newline
# Print vector to observe true formatting
cat(AnyAdditionalInfoPages)
# Output:
Additional Information: page 20
Additional Information: page 7
Additional Information: page 50
Additional Information:
page 60
# Negative lookahead for spaces *only*
variablename <- grep("Additional Information:(?! )", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
# Output
[1] "Additional Information:\tpage 50" "Additional Information:\npage 60"
# Negative lookahead for *any* whitespace
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
# Output
character(0)
语言:R,IDE:R Studio
我正在编写一个脚本来从 pdf 文件中提取和排除特定信息(a.k.a 一个巨大的字符串)。我使用 grep 将字符串拆分为我想要的页面。我希望进一步缩小它。我的进一步瘦身脚本是...
variablename <- grep("Additional Information:(?! )", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
这完全符合我的要求。然而,我是 R 和正则表达式的新手,所以我想练习并尝试了以下方法...
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
结果是 - 错误:'\s' 是在以“"Additional Information:(?!\s"
开头的字符串中无法识别的转义符和
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
结果是一个空变量
> variablename
character(0)
这是怎么回事?为什么 " " 有效,但字符串 \s 的转义字符无效?
啊,这是一个有趣的问题。
模式 "Additional Information:(?! )"
不会 select 个包含“:”后的单个 space 的字符串,但使用 (?!\s)
不会 select 个包含单个 space 的字符串任意 白色space 字符,例如制表符。一种可能的解释是,您正在解析的向量中有 "non-space" 形式的白色 space。
AnyAdditionalInfoPages <- c("Additional Information: page 20", # one space
"Additional Information: page 7", # two spaces
"Additional Information:\tpage 50", # tab
"Additional Information:\npage 60") # newline
# Print vector to observe true formatting
cat(AnyAdditionalInfoPages)
# Output:
Additional Information: page 20
Additional Information: page 7
Additional Information: page 50
Additional Information:
page 60
# Negative lookahead for spaces *only*
variablename <- grep("Additional Information:(?! )", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
# Output
[1] "Additional Information:\tpage 50" "Additional Information:\npage 60"
# Negative lookahead for *any* whitespace
variablename <- grep("Additional Information:(?!\s)", AnyAdditionalInfoPages,
perl = TRUE, value = TRUE)
# Output
character(0)