2015-09-08 96 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"); 
    } 
}