/ / regex, aby wykryć ciąg oddzielony znakami niebędącymi alfabetami (lub niczym) - r, regex

regex, aby wykryć ciąg oddzielony znakami nie alfabetycznymi (lub nic) - r, regex

„Chciałbym napisać wyrażenie regularne, aby wykryć ciąg„ el ”(oznacza„ wyeliminowany ”i znajduje się w grupie źle sformatowanych danych wyników).

Na przykład

tests <- c("el", "hello", "123el", "el/27")

Tutaj szukam rezultatu TRUE, FALSE, TRUE, TRUE. Moje smutne próby, które nie działają z oczywistych powodów:

library(stringr)
str_detect(tests, "el")  # TRUE TRUE TRUE TRUE
str_detect(tests, "[^a-z]el")  # FALSE FALSE  TRUE FALSE

Odpowiedzi:

2 dla odpowiedzi № 1

Użyj wyrażenia regularnego (\b|[^[:alpha:]])el(\b|[^[:alpha:]]) wraz z grepl:

> tests <- c("el", "hello", "123el", "el/27")
> y <- grepl("(\b|[^[:alpha:]])el(\b|[^[:alpha:]])", tests)
> y
[1]  TRUE FALSE  TRUE  TRUE

Twój warunek, czy el wygląda na to, że obie strony mają granicę słów (b) lub znak inny niż alfa (reprezentowany przez klasę znaków [^[:alpha:]] w R).