我的字符串是这样的:
str1="<accountName>THOMAS M PINCHBECK</accountName>";
我正在尝试使用正则表达式获取名称:THOMAS M PINCHBECK
我尝试的是:
str2= str1.matches("<accountName>"+"(.*)"+"</accountName>");
但这没有成功。任何帮助将不胜感激.. !!
答案 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));
}
答案 1 :(得分:1)
使用String#replaceFirst
:
String str = "<accountName>THOMAS M PINCHBECK</accountName>";
String repl = str.replaceFirst("^<accountName>([^&]+).*$", "$1");
//=> THOMAS M PINCHBECK
答案 2 :(得分:0)
考虑以下Regex ......
(?<=>).*?(?=<)