Ashu
Ashu

Reputation: 21

R function to check the multiple texts in a string

I am facing a problem in finding a solution in R

I have to find out the strings having 4 texts :

1. " { M/s ",
2. " { M/s. ",
3. " ( S/O - ",
4. " ( W/O - "

and put the output in if statement in R

dd<- data.frame(narr=c("Ratnakar:LIMITED::::CNAAJPIOP0::::Ratnakar:LIMITED",
                       "BAR-BOKALAWA:::Kl RAM I:: { M/s. REJOICE CONFECTIONARS ::BARBOKALAWA:::Kl RAM I",
                       "P2A:::REFUND::: { M/s AANCHAL SAREES :::1(NETPREM KUMAR SINGH)",
                       "P2A:: SUNDER ( S/O - JITENDER PAL ::REFUND:::::rajdhani:lawn",
                       "SAA::PRUD:::P2A::::SAA::PRUD",
                       "SAA-NOON:MOO: RAJNI ( W/O - RAM NIVAS::P2A::REFUND::SAA:NOON:MOO",
                       "CMS.CAR:::SAA:::CMS::CAR"))

This is running fine : str_detect(dd$narr, " M/s | M/s.| W/O | C/O | S/O ")


But, This is not running : str_detect(dd$narr, " { M/s | { M/s.| ( W/O | ( C/O | ( S/O ")

Error is coming : Error in stri_detect_regex(string, pattern, negate = negate, opts_regex = opts(pattern)) : Error in {min,max} interval. (U_REGEX_BAD_INTERVAL) Please help me out.

Upvotes: 2

Views: 63

Answers (2)

GKi
GKi

Reputation: 39647

?regexp says: Any metacharacter with special meaning may be quoted by preceding it with a backslash.

stringr::str_detect(dd$narr, " \\{ M/s | \\{ M/s\\.| \\( W/O | \\( C/O | \\( S/O ")
#[1] FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE

Upvotes: 2

Piyush Sharma
Piyush Sharma

Reputation: 97

str_detect(dd$narr, " \\{ M/s | \\{ M/s\\.| \\( W/O | \\( C/O | \\( S/O ")

Upvotes: 2

Related Questions