You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用str_detect筛选括号前后含其他内容的条目问题

我来帮你搞定这个问题!你想要筛选出那些不只是单纯{单词}格式的条目,也就是括号前后还带有其他内容的,对吧?咱们一步步来实现:

首先先构造你的示例数据,方便测试:

library(dplyr)
library(stringr)

# 模拟你的原始数据
df <- tibble(
  items = c("{apple}", "{orange}>s>", "{pine--apple}", "{kiwi}", "{strawberry}>s>")
)

接下来关键是写对正则表达式——你之前在regexr里能用但R里不行,大概率是没加字符串首尾锚点,或者没正确转义特殊字符。咱们要匹配的是「整个字符串就是{单词}」的格式,然后取反筛选:

# 筛选出不符合"仅{单词}"格式的条目
target_items <- df %>%
  filter(!str_detect(items, "^\\{[A-Za-z-]+\\}$"))

# 查看结果
target_items

正则表达式解释:

  • ^ 和 $:锚定字符串的开头和结尾,确保我们匹配的是整个字符串,而不是字符串里的某一段
  • \\{ 和 \\}:转义左右括号,因为括号在正则里是特殊语法,必须转义才能匹配字面量
  • [A-Za-z-]+:匹配一个或多个字母(大小写)或连字符,覆盖你例子里pine--apple这种带连字符的单词情况

运行这段代码后,就能得到你需要的两个条目:{orange}>s> 和 {strawberry}>s>啦。

内容的提问来源于stack exchange,提问作者rayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:06:39