【发布时间】:2015-03-24 02:13:24
【问题描述】:
我正在尝试将向量中的确切单词与可变字符串进行匹配。为此,我使用了边界。但是,我希望连字符/破折号不要被视为单词边界。这是一个例子:
vector<-c(
"ARNT",
"ACF, ASP, ACF64",
"BID",
"KTN1, KTN",
"NCRNA00181, A1BGAS, A1BG-AS",
"KTN1-AS1")
要匹配包含“KTN1”的字符串,我正在使用:
grep("(?i)(?=.*\\bKTN1\\b)", vector, perl=T)
但这匹配“KTN1”和“KTN1-AS1”。
有没有办法可以将破折号视为一个字符,以便将“KTN1-AS1”视为一个完整的单词?
【问题讨论】:
-
根据您的需要两者都匹配。
-
您的意思是
grep("(?i).*\\bKTN1[-\\w]*\\b", vector, perl=T)或grep("(?i).*\\bKTN1[-\\w]*\\b", vector, perl=T, value=T)? -
我怎么能只匹配“KTN1”?