相关疑难解决方法(0)

如何使用grep()/ gsub()来查找完全匹配

string = c("apple", "apples", "applez")
grep("apple", string)
Run Code Online (Sandbox Code Playgroud)

这将为我提供所有三个元素的索引string.但我希望在单词"apple"上完全匹配(即我只想grep()返回索引1).

regex grep r word-boundary gsub

54
推荐指数
2
解决办法
7万
查看次数

在 R 中使用 Grep 查找具有自定义“扩展”边界的单词

我正在寻找一个正则表达式来 grep 整个单词,包括用数字或下划线分隔的单词。\\b将数字和下划线视为单词的一部分,而不是边界。

例如,我想在“DOG MOUSE CAT”、“DOG MOUSE:CAT”和“DOG_MOUSE9CAT”以及表达式的末尾或开头捕捉鼠标,如“MOUSE9CAT”和“DOG_MOUSE” . 基本上,我正在寻找的边界是任何非大写字母字符加上行/表达式的开头和结尾(可能会遗漏\\b此处捕获的其他一些情况)。

我试过了:

"[[0-9_]\\b]MOUSE[[0-9_]\\b]"
"[[0-9_]|\\b]MOUSE[[0-9_]|\\b]"
"[$|[^A-Z]]MOUSE[^|[^A-Z]]"
"[?<=^|[^A-Z]]MOUSE[?=$|[^A-Z]]"
Run Code Online (Sandbox Code Playgroud)

他们都没有工作。

我实际上正在寻找几个词(基于一个长的值向量),所以最终结果应该看起来像

grep(paste("\\b", paste(searchwords, collapse = "\\b|\\b"), "\\b"), targettext)
Run Code Online (Sandbox Code Playgroud)

(使用不同的分隔符,因为\\b对我来说太严格了)。

(这与用户 Nick Sabbe 在此处的评论中提出的问题类似:Using grep in R to find strings as whole words (but not strings as part of words)

regex r

7
推荐指数
1
解决办法
219
查看次数

如何使用 stringr 函数替换精确的字符串?

我正在尝试使用stringr函数替换列中的确切字符串。

我尝试的数据集是这样的:

data <- data.frame(
  column = c("Value", "Values", "Value", "Values")
)

data

  column
1 Value
2 Values
3 Value
4 Values
Run Code Online (Sandbox Code Playgroud)

我想用“值”替换“值”。我尝试过str_replace(data$column, "Value", "Values"),但这会产生以下不需要的替换:

[1] "Values"  "Valuess" "Values"  "Valuess"
Run Code Online (Sandbox Code Playgroud)

我希望输出是:

[1] "Values"  "Values" "Values"  "Values"
Run Code Online (Sandbox Code Playgroud)

regex r stringr

7
推荐指数
1
解决办法
7021
查看次数

在R中的数据帧中用正则表达式检测字边界

我有一个data.frame命名all,其中包含一系列因子,这些因素包括"word","nonword"以及其他一些因素.我的目标是只选择具有因子值"word"的行.

我的解决方案grep("\bword\b",all[,5])没有返回

如何识别单词边界?

regex r word-boundary dataframe

5
推荐指数
1
解决办法
4872
查看次数

标签 统计

r ×4

regex ×4

word-boundary ×2

dataframe ×1

grep ×1

gsub ×1

stringr ×1