2011-12-13 51 views
0

有人可以幫助編寫正則表達式來從字符串中提取值。Java正則表達式上的另一種模式

輸入

EX000 YUUOO 23 $90SDFFSFF SFDFSFD SFDSFS RMK NDN 002 SFDSFDF SFD FSDF SFSF 

我想知道如何尋找RMK NDN ...並提取價值002(4個位數最大值)?

感謝

+1

這裏是一個小程序,可以讓你測試Java正則表達式網站:http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester。 html – DwB 2011-12-13 19:50:56

回答

0

試試這個:

".*RMK NDN (\\d{1,4}).*" 
2

假定輸入總是看起來就像你的榜樣,只有數字002可以爲三位或四位數字的序列有所不同,這會工作:

public static String getDigits(String input) { 
    Pattern p = Pattern.compile("RMK\\s+NDN\\s+(\\d{3,4})\\s+SFDSFDF"); 
    Matcher m = p.matcher(input); 
    return (m.find()) ? m.group(1) : null; 
} 
+0

太棒了。它的工作 – javaagn 2011-12-13 20:01:29

+0

@arungnair接受這一點,如果它的工作 – Joe 2011-12-14 04:50:10

0

只要搜索你想要的東西,並把下面的數字爲捕獲組

RMK\\sNDN\\s(\\d{1,4})\\s 

看到它here on Regexr