0

Here are my input strings: national fajfjlajllfsjakljf fj alkfjklajf jafl fjlajl
international
jfalkj jalkfjda national
inter-national
international
inter_national

I want a regex which picks national only BUT not international or inter-national or inter_national. What I'm trying is \bnational\b, this picks all cases except the first match in first line.

Could someone help me out?

Chetan
  • 21
  • 1
  • 5

2 Answers2

0

Seems like you want national which are at start or end or surrounded by spaces.You can use

(?:^|(?<=\s))national(?=\s|$)

See demo

vks
  • 67,027
  • 10
  • 91
  • 124
0

regex

String[] s = {"national", "fajfjlajllfsjakljf", "fj", "alkfjklajf" ,"jafl", "fjlajl" ,
        "international" ,
        "jfalkj jalkfjda national" ,
        "inter-national", 
        "international", 
        "inter_national"};
java.util.regex.Pattern p = Pattern.compile("^(national)+$");
int count = 0;
for (int i = 0; i < s.length; i++) {
    if (p.matcher(s[i]).find()) {
        count++;
        System.out.println("true");
    } 
}
Community
  • 1
  • 1
Yash
  • 9,250
  • 2
  • 69
  • 74