以下是我要做的事情:
给定一个字符串,我想在第三次出现之后删除所有内容 - ' - '和角色 - 假设有第三次出现,可能没有。
这是我的预期结果:
visibilityOfElementLocated
任何帮助?
答案 0 :(得分:1)
我们匹配两个不是-
后跟-
([^-]+-
)的字符实例,后跟另一组不是-
的字符,捕获它作为一个组,即在()
内,后跟一个-
和一组不是:
([^:]+
)的字符,后跟以{开头的第二个捕获组{1}}(:
)并将其替换为捕获组的反向引用
(:.*)
sub("(([^-]+-){2}[^-]+)-*[^:]+(:.*)", "\\1\\3", str1)
#[1] "yy-aa-bbb:HYT" "yy-aa-vvv:ZTR" "yy-aa-ddd:YTLM"
答案 1 :(得分:1)
gsub('(.*-.*-.*)\\-.*(\\:.*)','\\1\\2',string)
#[1] "yy-aa-bbb:HYT" "yy-aa-vvv:ZTR" "yy-aa-ddd:YTLM"
答案 2 :(得分:0)
将前两个字段和之后的所有字段匹配到冒号,并将其替换为前两个字段和冒号。请注意,\w
匹配任何单词字符,而\
需要在"..."
内加倍:
sub("(\\w+-\\w+)-.+:", "\\1:", xx)
## [1] "yy-aa-bbb:HYT" "yy-aa-vvv:ZTR" "yy-aa:YTLM"
注意:可重复形式的输入xx
为:
xx <- c("yy-aa-bbb-cccc1:HYT", "yy-aa-vvv-vv:ZTR", "yy-aa-ddd:YTLM")
答案 3 :(得分:0)
在那里抛出一个stringi
解决方案。
library(stringi)
sub('_.*:' ,':', stri_replace_last_fixed(x, '-', '_'))
#[1] "yy-aa-bbb:HYT" "yy-aa-vvv:ZTR" "yy-aa:YTLM"