str_match: Extract matched groups from a string.

Description Usage Arguments Value See Also Examples

Description

Vectorised over string and pattern.

Usage

1
2
3
str_match(string, pattern)

str_match_all(string, pattern)

Arguments

string

Input vector. Either a character vector, or something coercible to one.

pattern

Pattern to look for, as defined by an ICU regular expression. See stringi::stringi-search-regex for more details.

Value

For str_match, a character matrix. First column is the complete match, followed by one column for each capture group. For str_match_all, a list of character matrices.

See Also

str_extract() to extract the complete match, stringi::stri_match() for the underlying implementation.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
strings <- c(" 219 733 8965", "329-293-8753 ", "banana", "595 794 7569",
  "387 287 6718", "apple", "233.398.9187  ", "482 952 3315",
  "239 923 8115 and 842 566 4692", "Work: 579-499-7527", "$1000",
  "Home: 543.355.3679")
phone <- "([2-9][0-9]{2})[- .]([0-9]{3})[- .]([0-9]{4})"

str_extract(strings, phone)
str_match(strings, phone)

# Extract/match all
str_extract_all(strings, phone)
str_match_all(strings, phone)

x <- c("<a> <b>", "<a> <>", "<a>", "", NA)
str_match(x, "<(.*?)> <(.*?)>")
str_match_all(x, "<(.*?)>")

str_extract(x, "<.*?>")
str_extract_all(x, "<.*?>")

Example output

 [1] "219 733 8965" "329-293-8753" NA             "595 794 7569" "387 287 6718"
 [6] NA             "233.398.9187" "482 952 3315" "239 923 8115" "579-499-7527"
[11] NA             "543.355.3679"
      [,1]           [,2]  [,3]  [,4]  
 [1,] "219 733 8965" "219" "733" "8965"
 [2,] "329-293-8753" "329" "293" "8753"
 [3,] NA             NA    NA    NA    
 [4,] "595 794 7569" "595" "794" "7569"
 [5,] "387 287 6718" "387" "287" "6718"
 [6,] NA             NA    NA    NA    
 [7,] "233.398.9187" "233" "398" "9187"
 [8,] "482 952 3315" "482" "952" "3315"
 [9,] "239 923 8115" "239" "923" "8115"
[10,] "579-499-7527" "579" "499" "7527"
[11,] NA             NA    NA    NA    
[12,] "543.355.3679" "543" "355" "3679"
[[1]]
[1] "219 733 8965"

[[2]]
[1] "329-293-8753"

[[3]]
character(0)

[[4]]
[1] "595 794 7569"

[[5]]
[1] "387 287 6718"

[[6]]
character(0)

[[7]]
[1] "233.398.9187"

[[8]]
[1] "482 952 3315"

[[9]]
[1] "239 923 8115" "842 566 4692"

[[10]]
[1] "579-499-7527"

[[11]]
character(0)

[[12]]
[1] "543.355.3679"

[[1]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "219 733 8965" "219" "733" "8965"

[[2]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "329-293-8753" "329" "293" "8753"

[[3]]
     [,1] [,2] [,3] [,4]

[[4]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "595 794 7569" "595" "794" "7569"

[[5]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "387 287 6718" "387" "287" "6718"

[[6]]
     [,1] [,2] [,3] [,4]

[[7]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "233.398.9187" "233" "398" "9187"

[[8]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "482 952 3315" "482" "952" "3315"

[[9]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "239 923 8115" "239" "923" "8115"
[2,] "842 566 4692" "842" "566" "4692"

[[10]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "579-499-7527" "579" "499" "7527"

[[11]]
     [,1] [,2] [,3] [,4]

[[12]]
     [,1]           [,2]  [,3]  [,4]  
[1,] "543.355.3679" "543" "355" "3679"

     [,1]      [,2] [,3]
[1,] "<a> <b>" "a"  "b" 
[2,] "<a> <>"  "a"  ""  
[3,] NA        NA   NA  
[4,] NA        NA   NA  
[5,] NA        NA   NA  
[[1]]
     [,1]  [,2]
[1,] "<a>" "a" 
[2,] "<b>" "b" 

[[2]]
     [,1]  [,2]
[1,] "<a>" "a" 
[2,] "<>"  ""  

[[3]]
     [,1]  [,2]
[1,] "<a>" "a" 

[[4]]
     [,1] [,2]

[[5]]
     [,1] [,2]
[1,] NA   NA  

[1] "<a>" "<a>" "<a>" NA    NA   
[[1]]
[1] "<a>" "<b>"

[[2]]
[1] "<a>" "<>" 

[[3]]
[1] "<a>"

[[4]]
character(0)

[[5]]
[1] NA

stringr documentation built on May 2, 2019, 11:03 a.m.