2016-02-24 91 views
0

考慮以下字符串:
<spring:message code="common.about.team1" /> <br /> <br /> <spring:message code="common.about.team2" /> <br /> <br /> <spring:message code="common.about.team3" /></p>

什麼會導致在雙引號字符串對應的正則表達式,即:common.about.team1common.about.team2common.about.team3(最好在Java中,但不是必需的)?查找字符串子的幾個OCCURENCES用正則表達式

+0

顯示你試過 – jhamon

+0

一個偉大的網站開發正則表達式是HTTPS ://regex101.com/ – JMichaelTX

回答

1

你會好好研究模式匹配。不過,我在下面加入了一段代碼,可以幫助您解決問題。

final static String str = "<spring:message code=\"common.about.team1\" />"; 
final static Pattern pattern = Pattern.compile("\"(.+?)\""); 
final static Matcher matcher = pattern.matcher(str); 

public static void main(String[] args) 
{ 
    while (matcher.find()) 
    { 
     System.out.println(matcher.group(1)); 
    } 
} 

未來的一個很好的事情是看看下面的網站,並嘗試建立你的正則表達式的字符串: http://regexr.com/3cse4

當你有你的正則表達式的字符串的工作,那麼你可以看看如何實現它,讓它與您的應用程序一起工作。

輸出:

common.about.team1 
common.about.team2 
common.about.team3 
1

下面是應該工作另一種模式:

public static void main(String[] args) { 
    String input = "<spring:message code=\"common.about.team1\" /> <br /> <br /> <spring:message code=\"common.about.team2\" /> <br /> <br /> <spring:message code=\"common.about.team3\" /></p>"; 

    Pattern p = Pattern.compile("\"([^\"]+)\""); 
    Matcher m = p.matcher(input); 

    List<String> matches= new ArrayList<String>(); 
    while (m.find()) { 
     matches.add(m.group()); 
    } 
    System.out.println(matches); 
} 

輸出:

["common.about.team1", "common.about.team2", "common.about.team3"] 
相關問題