从正则表达式获取字符串中的字符串

时间:2013-11-08 19:02:04

标签: java regex

我的字符串是这样的:

str1="<accountName>THOMAS M PINCHBECK</accountName>";

我正在尝试使用正则表达式获取名称:THOMAS M PINCHBECK

我尝试的是:

str2= str1.matches("<accountName>"+"(.*)"+"</accountName>");

但这没有成功。任何帮助将不胜感激.. !!

3 个答案:

答案 0 :(得分:3)

matches(...) String方法返回boolean,而不是String。你可以像这样解决它:

String str = "<accountName>THOMAS M PINCHBECK</accountName>"+
    "<accountName>Hello world</accountName>"+
    "<accountName>Quick brown fox</accountName>";
Pattern p = Pattern.compile("<accountName>([^&]*)</accountName>");
Matcher m = p.matcher(str);
while (m.find()) {
    System.out.println(m.group(1));
}

Demo on ideone.

答案 1 :(得分:1)

使用String#replaceFirst

String str = "<accountName>THOMAS M PINCHBECK</accountName>";

String repl = str.replaceFirst("^<accountName>([^&]+).*$", "$1");
//=> THOMAS M PINCHBECK

答案 2 :(得分:0)

考虑以下Regex ......

(?<=&gt;).*?(?=&lt;)