考虑以下字符串:
<spring:message code="common.about.team1" /> <br /> <br /> <spring:message code="common.about.team2" /> <br /> <br /> <spring:message code="common.about.team3" /></p>
什么是相应的正则表达式,导致双引号中的子串,即:common.about.team1
,common.about.team2
,common.about.team3
(最好是Java,但不是必需的)?
答案 0 :(得分:1)
你会很好地研究模式匹配。但是,我在下面添加了一个可以帮助您解决问题的代码段。
final static String str = "<spring:message code=\"common.about.team1\" />";
final static Pattern pattern = Pattern.compile( "\"(.+?)\"" );
final static Matcher matcher = pattern.matcher( str );
public static void main( String[] args )
{
while ( matcher.find() )
{
System.out.println( matcher.group( 1 ) );
}
}
未来的好处是查看以下网站并尝试创建正则表达式字符串: http://regexr.com/3cse4
当您的正则表达式字符串正常工作时,您可以查看实现它并使其与您的应用程序一起使用。
输出:
common.about.team1
common.about.team2
common.about.team3
答案 1 :(得分:1)
以下是另一种应该起作用的模式:
public static void main(String[] args) {
String input = "<spring:message code=\"common.about.team1\" /> <br /> <br /> <spring:message code=\"common.about.team2\" /> <br /> <br /> <spring:message code=\"common.about.team3\" /></p>";
Pattern p = Pattern.compile("\"([^\"]+)\"");
Matcher m = p.matcher(input);
List<String> matches= new ArrayList<String>();
while (m.find()) {
matches.add(m.group());
}
System.out.println(matches);
}
输出:
["common.about.team1", "common.about.team2", "common.about.team3"]