Regex 使用gsub删除字符串中括号之间的部分,该部分出现在R中字符串的末尾
我正在寻找一个gsub表达式,它可以删除括号中字符串的任何部分,但只有当它出现在该字符串的末尾时才会删除。例如,为了Regex 使用gsub删除字符串中括号之间的部分,该部分出现在R中字符串的末尾,regex,r,replace,gsub,Regex,R,Replace,Gsub,我正在寻找一个gsub表达式,它可以删除括号中字符串的任何部分,但只有当它出现在该字符串的末尾时才会删除。例如,为了 string="n-Pentacosane (C-25)" 我希望它只返回“正戊烷”。 但重要的是,它不会删除先前在字符串中括号之间写入的任何内容。有人有什么想法吗?应该这样做: sub(' *\\([^)]*)$', '', "n-Pentacosane (C-25)") 即: sub就足够了,因为我们只做一次更换 为了匹配起始括号,我们需要写:\\(),无需转义第二个括
string="n-Pentacosane (C-25)"
我希望它只返回“正戊烷”
。
但重要的是,它不会删除先前在字符串中括号之间写入的任何内容。有人有什么想法吗?应该这样做:
sub(' *\\([^)]*)$', '', "n-Pentacosane (C-25)")
即:
就足够了,因为我们只做一次更换sub
- 为了匹配起始括号,我们需要写:
),无需转义第二个括号\\(
- 为了最终匹配,我们需要两件事:
- 使用
$
- 使匹配非贪婪:通过使用
我们避免替换太多的输入,如[^]*
,从而得到penta(something)cosane(C-25)
,而不是penta(something)cosane
penta