обычный grep
также отлично справится
grep( "^m", a, ignore.case = TRUE, value = TRUE )
#[1] "Mom" "mother"
тесты
ответ Тома (начинается с) - победитель, но есть место для улучшения (проверьте код startsWith2
)
microbenchmark::microbenchmark(
substr = a[substr(a, 1, 1) %in% c("M", "m")],
grepl = a[grepl("^[Mm]", a)],
grep = grep( "^m", a, ignore.case = TRUE, value = TRUE ),
stringr = unlist(stringr::str_extract_all(a,regex("^M.*",ignore_case = T))),
startsWith1 = a[startsWith(toupper(a), "M")],
startsWith2= a[startsWith(a, c("M", "m"))]
)
# Unit: nanoseconds
# expr min lq mean median uq max neval
# substr 1808 2411.0 3323.19 3314 3917 8435 100
# grepl 3916 4218.0 5438.06 4820 6930 8436 100
# grep 3615 4368.5 5450.10 4820 6929 19582 100
# stringr 50913 53023.0 55764.10 54529 55132 174432 100
# startsWith1 1506 2109.0 2814.11 2711 3013 17474 100
# startsWith2 602 1205.0 1410.17 1206 1507 3013 100
Я только что начал изучать PdfBox от Apache именно для этой цели. Похоже, что один из их примеров, PrintTextLocations.java, является хорошей отправной точкой для того, что вам нужно.
Проверьте любой из них:
(кредит / см. Также: Бесплатная библиотека Java для преобразования существующего PDF в PDF / a )
iText PDF - http://itextpdf.com/
Apache FOP - http://xmlgraphics.apache.org/fop/
PDFBox - http://pdfbox.apache.org/
PDF Renderer - https://pdf-renderer.dev.java.net/
Вы пробовали Big Faceless - http://big.faceless.org/products/pdf/
Я бы сказал что iText является наиболее широко используемым