regex 使用stringr选择括号内单个单词的正则表达式

bkkx9g8r  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(90)

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

euoag5mw

euoag5mw1#

看起来我没有在我的组合中找到//S+。我检查的是单个非空格字符,而不是一个或多个非空格字符。
str_detect(desc, "\\(\\S+\\)$")

相关问题