如何在R中使用正则表达式提取子字符串

时间:2018-11-04 21:56:55

标签: r regex

我有一个字符串列表。每个条目看起来像:ENSG00001234.2 我只需要“ ENSG”和“”之间的字符串。

结果应为:00001234

如何在R中为此使用正则表达式?

谢谢!

2 个答案:

答案 0 :(得分:1)

由于您写道所有条目看起来都一样,因此也可以使用substr

x <- c("ENSG00001234.2")
substr(x, 5, 12)
# [1] "00001234"

答案 1 :(得分:0)

我们可以使用def calculate_odd_or_even_sum(query): start = int(input(" please enter a number")) end = int(input(" please enter another number")) count = 0 if query == 'even': return sum([x for x in range(start, end) if x % 2 == 0]) elif query == 'odd': return sum([x for x in range(start, end) if x % 2 != 0]) else: return 0

sub

或使用sub("ENSG([0-9]+)\\..*", "\\1", str1) #[1] "00001234"

str_extract

注意:如果字符串的长度发生变化,这仍将提供输出

数据

library(stringr)
str_extract(str1, "(?<=ENSG)[0-9]+")
#[1] "00001234"