我指定使用stringr
是因为它的字符转义不是“标准”正则表达式转义。
我想检测括号内只有一个单词的字符串。因此,我想检测"Men's shirt (blue)"
而不检测"Blade Runner (Director's cut)"
如果这有助于简化正则表达式,那么所有括号部分总是在字符串的末尾。
我尝试过str_detect(my_string, "\\(\\w?\\)")
,它不产生任何结果,并且str_detect(my_string, "\\(\\S\\)$")
,返回所有内容,包括多个单词
以及使用//S、带有或不带有$等的各种组合。
当我寻找其他堆栈溢出的答案时,我通常会发现一些稍微不同的问题,它们的答案只是“使用这个:“沿着使用lookaheads和其他看起来过于复杂的东西的看起来难以理解的正则表达式。感谢您对为什么(可能是显而易见和简单的)正则表达式工作的一点解释。
1条答案
按热度按时间euoag5mw1#
看起来我没有在我的组合中找到//S+。我检查的是单个非空格字符,而不是一个或多个非空格字符。
str_detect(desc, "\\(\\S+\\)$")