Reputation: 21
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
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
Reputation: 97
str_detect(dd$narr, " \\{ M/s | \\{ M/s\\.| \\( W/O | \\( C/O | \\( S/O ")
Upvotes: 2