我希望从数据集中提取一系列3个字母代码。 每个条目都有一组3个大写字母,不是" CCV,"但是他们 每个条目的位置不同。
目前我正在尝试:
article.screen-width {
background: rgb(153, 153, 153);
}
.window_scale {
background: rgb(153, 153, 153);
}
我有一个条目数据集,如:
(?!CCV)[A-Z]{3}
并希望:
CCV_21123214_AAA
CCV_02390394_AAC
094804958_AAA_ee9r80
BLAH_CCV_odfdkk_BBB
问题是我目前的做法是不断抓取来自其他大写单词的字母超过3个字母,如" BLAH",将其中的部分字母视为三元组:
AAA
AAC
AAA
BBB
有没有办法只找到大写字母的三元组?
答案 0 :(得分:0)
如果你只对找到带字母的行感兴趣,或者可以使用捕获组来提取组合,你可以选择
(?:\b|_)(?!CCV)([A-Z]{3})(?:\b|_)
它会检查单词边界(\b
)或下划线(_
),而不是CCV
,捕获(只是删除括号后才匹配)字母,然后再次匹配单词边界或下划线。
如果支持后台(不是javascript),那么你可以选择
(?<=\b|_)(?!CCV)([A-Z]{3})(?=\b|_)
答案 1 :(得分:0)
你可能想要的是这样的:
(?<=\b|_)(?!CCV)[A-Z]{3}(?=\b|_)
首先,它会向后看,以确保前一个标记是下划线或字边界(\b
)。然后,它会向前看,以确保它找不到可怕的CCV
。然后它将匹配3个大写字母,然后向前看以确保下一个标记是下划线或字边界。
由于你在R工作,你需要逃避反斜杠,产生
(?<=\\b|_)(?!CCV)[A-Z]{3}(?=\\b|_)
作为你的最终模式字符串。