簡體   English   中英

如何在java中使用正則表達式獲取子字符串?

[英]how to get substring using regular expression in java?

String str = "#aaa# #bbb# #ccc#   #ddd#"

任何人都可以告訴我如何使用常規獲得子串“aaa”,“bbb”,“ccc”,“ddd”(子串在“##”對中,而“##”的數量是未知的)表達?

謝謝!

使用正則表達式

Pattern p = Pattern.compile("#(\\w+)#");
String input = "#aaa# #bbb# #ccc#   #ddd#";
Matcher m = p.matcher(input);

List<String> parts = new ArrayList<String>();
while (m.find())
{
    parts.add(m.group(1));
}

// parts is [aaa, bbb, ccc, ddd]

http://ideone.com/i1IAZ

嘗試這個:

String str = "1aaa2 3bbb4 5ccc6   7ddd8";
String[] data = str.split("[\\d ]+");

結果數組中的每個位置都將包含一個子字符串,除了第一個空字符串:

System.out.println(Arrays.toString(data));
> [, aaa, bbb, ccc, ddd]

這是使用StringTokenizer執行此操作的另一種方法

    String str="#aaa# #bbb# #ccc#   #ddd#";
    //# and space are the delimiters
    StringTokenizer tokenizer = new StringTokenizer(str, "# ");
    List<String> parts = new ArrayList<String>(); 
    while(tokenizer.hasMoreTokens())
       parts.add(tokenizer.nextToken());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM