Aligning strings with regex.

regex_valign(stringvec, regex_ai, sep_str = "")

Arguments

stringvec

A character vector with one element for each line.

regex_ai

A regular expression matching the position for alignment.

sep_str

Optional character vector that will be inserted at the positions matched by the regular expression.

Value

A character vector with one element for each line, with padding inserted at the matched postitions so that elements are vertically aligned across lines.

Details

This function is based on `textutils::valign()`, and may be handy for reading fixed width files, text, or tables parsed from PDFs.

Examples

guests <- readr::read_lines(c("6 COAHUILA 20/03/2020 7 COAHUILA 20/03/2020 18 BAJA CALIFORNIA 16/03/2020 109 CDMX 12/03/2020 1230 QUERETARO 21/03/2020")) # align at first uppercase word boundary , inserting a separator regex_valign(guests_lines, "\\b(?=[A-Z])", " - ")
#> Error in regex_valign(guests_lines, "\\b(?=[A-Z])", " - "): object 'guests_lines' not found
# align dates at end of string regex_valign(guests_lines, "\\b(?=[0-9]{2}[\\/]{1}[0-9]{2}[\\/]{1}[0-9]{4}$)")
#> Error in regex_valign(guests_lines, "\\b(?=[0-9]{2}[\\/]{1}[0-9]{2}[\\/]{1}[0-9]{4}$)"): object 'guests_lines' not found