r 正则表达式中 [:digit:] 的子否定
r sub negation of [:digit:] in regex
我正在尝试使用 sub
删除字符串末尾 s
之间的所有内容(模式始终包括 :
、数字和括号)直到但不包括第一个开始括号前的数字(
。
s <- "NXF1F-Z10_(1:111)"
>sub("\(1:[[:digit:]]+)$", "", s) #Almost work!
[1] "NXF1F-Z10_"
要删除所有不是数字的字符(如 _
,除数字以外的任何长度)我徒劳地试图否定数字:
sub("[^[:digit:]]*(1:[[:digit:]]+)$", "", s)
期望的输出是:
[1] "NXF1F-Z10"
s <- "NXF1F-Z10_(1:111)"
试试这个
sub("_.+", "", s)
# "NXF1F-Z10"
更一般
sub("(\d)[^\d]*[(].*[)]$", "\1", s, perl=TRUE)
# "NXF1F-Z10"
sub("(\d)[^\d]*[(].*[)]$", "\1", t, perl=TRUE)
# "NXF1F-Z10"
或者这个
sub("[(](\d+):.+", "\1", s)
# "NXF1F-Z10_1"
看你想要什么
我正在尝试使用 sub
删除字符串末尾 s
之间的所有内容(模式始终包括 :
、数字和括号)直到但不包括第一个开始括号前的数字(
。
s <- "NXF1F-Z10_(1:111)"
>sub("\(1:[[:digit:]]+)$", "", s) #Almost work!
[1] "NXF1F-Z10_"
要删除所有不是数字的字符(如 _
,除数字以外的任何长度)我徒劳地试图否定数字:
sub("[^[:digit:]]*(1:[[:digit:]]+)$", "", s)
期望的输出是:
[1] "NXF1F-Z10"
s <- "NXF1F-Z10_(1:111)"
试试这个
sub("_.+", "", s)
# "NXF1F-Z10"
更一般
sub("(\d)[^\d]*[(].*[)]$", "\1", s, perl=TRUE)
# "NXF1F-Z10"
sub("(\d)[^\d]*[(].*[)]$", "\1", t, perl=TRUE)
# "NXF1F-Z10"
或者这个
sub("[(](\d+):.+", "\1", s)
# "NXF1F-Z10_1"
看你想要什么