我有一个像这样的字符串向量
super(...).check()
我需要删除“ SsHV2L”之后的所有内容,并且仅获得
class testT(object):
def check(self, str):
return "t" in str
class testTE(testT):
def check(self, str):
return super(testTE, self).check(str) and "e" in str
class testTES(testTE):
def check(self, str):
return super(testTES, self).check(str) and "s" in str
print(testTES().check("test"))
# True
print(testTES().check("dog"))
# False
print(testTES().check("dogs"))
# False
print(testTE().check("tuple"))
# True
我尝试过:test <- c("Dcl2_SsHV2L_2_CAAAAG_L003_R1_001", "Dcl2_SsHV2L_2_CAAAAG_L003_R1_001",
"Dcl2_SsHV2L_2_CAAAAG_L003_R1_001", "Dcl1_SsHV2L_2_GGTAGC_L003_R1_001")
正确的做法是什么?
答案 0 :(得分:3)
你可以做
gsub("SsHV2L.+$", "SsHV2L", test)
在这里抓住后面有东西的“ SsHV2L”,然后仅用“ SsHV2L”代替所有
答案 1 :(得分:1)
gsub("(^.+SsHV2L)(.+$)","\\1", test)
[1] "Dcl2_SsHV2L" "Dcl2_SsHV2L" "Dcl2_SsHV2L" "Dcl1_SsHV2L"
这使用的模式具有两个捕获类,第一个在目标字符串中结尾,然后仅保留该捕获类。