2015-09-08 51 views
0

这里是我的输入字符串: 国家fajfjlajllfsjakljf FJ alkfjklajf jafl fjlajl
国际
jfalkj jalkfjda国家
国际
国际
inter_national
与边界适当的正则表达式匹配

我想正则表达式只挑选国家,但不包括国际或国际或国际。 我想要的是\ bnational \ b,这个选项除了第一行的第一个匹配外,

有人可以帮我吗?

+0

'(?<!\ S)的国家(?!\ S)' –

回答

0

好像你要national,其在startendspaces包围。你可以使用

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

See demo

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"); 
    } 
}