Tengo la siguiente cadena : "PRODUCT colgate good but not goodOKAY"

Quiero extraer todas las palabras entre PRODUCT y OKAY

OriginalEl autor gyaanseeker | 2015-02-01

4 Comentarios

  1. 21

    Esto se puede hacer con sub:

    s <- "PRODUCT colgate good but not goodOKAY"
    sub(".*PRODUCT *(.*?) *OKAY.*", "\1", s)

    dando:

    [1] "colgate good but not good"

    Los paquetes No son necesarios.

    Aquí es una visualización de la expresión regular:

    .*PRODUCT *(.*?) *OKAY.*

    Extracto de una cadena de palabras entre dos palabras específicas en R

    Debuggex Demo

    OriginalEl autor G. Grothendieck

  2. 14

    Puede utilizar gsub:

    vec <- "PRODUCT colgate good but not goodOKAY"
    
    gsub(".*PRODUCT\s*|OKAY.*", "", vec)
    # [1] "colgate good but not good"

    OriginalEl autor Sven Hohenstein

  3. 14
    x = "PRODUCT colgate good but not goodOKAY"
    library(stringr)
    str_extract(string = x, pattern = perl("(?<=PRODUCT).*(?=OKAY)"))

    (?<=PRODUCT) – mira detrás de el partido por PRODUCT

    .* partido de todo excepto de las nuevas líneas.

    (?=OKAY) — mirar hacia adelante para que coincida con OKAY.

    Debo añadir que no necesita la stingr de este paquete, las funciones base sub y gsub funcionar bien. Yo uso stringr para que la consistencia de la sintaxis: si estoy en la extracción, la sustitución, la detección etc. los nombres de las funciones son predecibles y comprensible, y los argumentos en un orden coherente. Yo uso stringr porque me ahorra la necesidad de la documentación de cada tiempo.

    OriginalEl autor Gregor

  4. 9

    Podría utilizar el rm_between función de la qdapRegex paquete. Se toma una cadena y una a la izquierda y a la derecha del límite de la siguiente manera:

    x <- "PRODUCT colgate good but not goodOKAY"
    
    library(qdapRegex)
    rm_between(x, "PRODUCT", "OKAY", extract=TRUE)
    
    ## [[1]]
    ## [1] "colgate good but not good"

    OriginalEl autor Tyler Rinker

Dejar respuesta

Please enter your comment!
Please enter your name here