R 随机字符计数模式

R 随机字符计数模式,r,regex,string,R,Regex,String,我想计算多个模式,但其中包括*(任何字符)。 下面是一个同时搜索:Y*Y、YY*和X*X的示例 df <- data.frame( V1 = c("A", "B", "C", "D"), V2 = c("XXYYYYY", "XXYYXX" , "XYXXYX", "XYYXYX") ) 通配符,*匹配所有字符(您称之为随机字符)和|可用于分隔多个模式pattern1 | pattern2,并且您可以建议如何从字符池中选择字符,例如,只有X、Y或Z,换句话说*可以是X或Y,或

我想计算多个模式,但其中包括*(任何字符)。 下面是一个同时搜索:
Y*Y
YY*
X*X
的示例

df <- data.frame(
  V1 = c("A", "B", "C", "D"),
  V2 = c("XXYYYYY", "XXYYXX" , "XYXXYX", "XYYXYX")
  )

通配符,
*
匹配所有字符(您称之为随机字符)和
|
可用于分隔多个模式
pattern1 | pattern2
,并且您可以建议如何从字符池中选择字符,例如,只有X、Y或Z,换句话说*可以是X或Y,或Z@Osssan
*
不是指“任何字符”,而是前一个字符出现“零次或多次”
表示“任何字符”,您可以尝试
stru count(V2,“Y([^Y]|$)”;stru计数(V2,“YY+([^Y]|$)”;str_count(V2,“X([^X]|$)”
如果您有一个字符列表CharList,并希望随机选择一个,只需使用
示例(CharList,1)
library(stringr)
df$V3 <- str_count(df$V2, "Y+Y+")
df$V4 <- str_count(df$V2, "YY+")
df$V5 <- str_count(df$V2, "X+X+")
V1      V2 V3 V4 V5
A XXYYYYY  1  1  1
B  XXYYXX  1  1  2
C  XYXXYX  2  0  3
D  XYYXYX  2  1  3