1

我的字符串是这样的:

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

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

我尝试的是:

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

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

4

3 回答 3

3

返回的matches(...)方法,不是。你可以像这样修复它:StringbooleanString

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));
}

ideone 上的演示。

于 2013-11-08T19:05:26.157 回答
1

使用String#replaceFirst

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

String repl = str.replaceFirst("^<accountName>([^&]+).*$", "$1");
//=> THOMAS M PINCHBECK
于 2013-11-08T19:05:18.697 回答
0

考虑以下正则表达式...

(?<=&gt;).*?(?=&lt;)
于 2013-11-08T19:11:47.650 回答