regex - How to split array of strings from two sides? -


i have array of strings (n=1000) in format:

   strings<-c("gsm1264936_2202_4866_28368_150cgy-gcsf6-m3_mouse430a+2.cel.gz",            "gsm1264937_2202_4866_28369_150cgy-gcsf6-m4_mouse430a+2.cel.gz",            "gsm1264938_2202_4866_28370_150cgy-gcsf6-m5_mouse430a+2.cel.gz") 

i'm wondering may easy way this:

strings2<-c(2201_4866_28368_150cgy-gcsf6-m3_mouse430a+2.cel,            2202_4866_28369_150cgy-gcsf6-m4_mouse430a+2.cel,            2203_4866_28370_150cgy-gcsf6-m5_mouse430a+2.cel) 

which means trim off "gsm1234567" front , ".gz" end.

just gsub solution matches strings starts ^ digits , alphabetical symbols, 0 or more times *, until _ encountered , (more precisely "or") pieces or strings have .gz @ end $.

 gsub("^([[:alnum:]]*_)|(\\.gz)$", "", strings) [1] "2202_4866_28368_150cgy-gcsf6-m3_mouse430a+2.cel" [2] "2202_4866_28369_150cgy-gcsf6-m4_mouse430a+2.cel" [3] "2202_4866_28370_150cgy-gcsf6-m5_mouse430a+2.cel" 

edit

i forget escape second point.


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

Nuget pack csproj using nuspec -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -