如何使用正則表達式獲取字符串中最後一個逗號後的內容?如何獲取java中最後一個逗號後的字符串?
實施例:
abcd,fg;ijkl, cas
輸出應該cas
注:有最後一個逗號和'c'
字符也需要去除之間的空間。 此模式在最後一個逗號後只包含一個空格。
如何使用正則表達式獲取字符串中最後一個逗號後的內容?如何獲取java中最後一個逗號後的字符串?
實施例:
abcd,fg;ijkl, cas
輸出應該cas
注:有最後一個逗號和'c'
字符也需要去除之間的空間。 此模式在最後一個逗號後只包含一個空格。
使用正則表達式:
Pattern p = Pattern.compile(".*,\\s*(.*)");
Matcher m = p.matcher("abcd,fg;ijkl, cas");
if (m.find())
System.out.println(m.group(1));
輸出:
cas
或者你可以用簡單的方法String
:
System.out.println(s.substring(s.lastIndexOf(",") + 1).trim());
System.out.println(s.substring(s.lastIndexOf(", ") + 2));
也許是這樣的:
String s = "abcd,fg;ijkl, cas";
String result = s.substring(s.lastIndexOf(',') + 1).trim();
也就是說,我把最後一個逗號後出現的串並去除環境之後的空白......
注意你的情況! substring而不是subString – spassvogel 2014-02-20 00:09:29
你可以試試這個:
public static void main(String[] args) {
String s = " abcd,fg;ijkl, cas";
String[] words = s.split(",");
System.out.println(words[words.length-1].trim());
}
使用'split'進行這個簡單的搜索並不是最優的。你可以使用'lastIndexOf'。 – 2012-03-01 11:57:36
只有一個空間:
String[] aux = theInputString.split(",\\s");
string result = aux[aux.length-1];
0到n個空格:
String[] aux = theInputString.split(",\\s*");
string result = aux[aux.length-1];
str.split(",");
然後
str.trim()
有關以下內容:
String a = "abcd,fg;ijkl, cas";
String[] result = a.split(",[ ]*");
String expectedResult = result[result.length - 1]);
我不知道你在哪裏找到了自己的智慧,但是基於JavaDocs(http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split%28java。 lang.String%29)並基於我的單元測試它使用正則表達式! – khmarbaise 2012-03-01 11:54:56
還有一:)
String s = "abcd,fg;ijkl, cas";
String result = s.replaceAll(".*, ", "");
你應該總是始終尋找答案對於這類問題在Apache的百科全書......和基本選應包括在每一個版本。最合適的(不使用正則表達式)是這樣的:
StringUtils.substringAfterLast(String str, String separator)
但如果你真的想使用某種原因,一個正則表達式有幾個你可能要使用的方法,例如
String removeAll(String text, String regex)
或
String removeFirst(String text, String regex)
有趣的是,你可以得到你想要做這個(依靠貪婪量詞)什麼:
StringUtils.removeFirst(myString, ".*,");
StringUtils的是阿帕奇公地lang3的一部分。
除了別的以外,沒有重新發明車輪的意思。但我能想到的其他至少2個優點:
PS沒有什麼可以阻止你在看源代碼來檢查什麼方法實際上做。通常他們很容易理解。
這是正確的,但它不使用正則表達式。 – 2012-03-01 11:45:38
添加了正則表達式示例! – dacwe 2012-03-01 11:49:02
@dacwe:像最後一個索引,如何獲得第一個索引? – Deepzz 2012-11-30 12:07:15