我有包含如下代码的xml文件
<bean id="ParentDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${JDBC.MYSQL.DRIVER}" />
<property name="password" value="${JDBC.MYSQL.PASSWORD}" />
<property name="user" value="${JDBC.MYSQL.USERNAME}" />
</bean>
我想使用Java代码获取value = {和}之间的所有标记。对于上面的文本需要下面的输出:
JDBC.MYSQL.DRIVER
JDBC.MYSQL.PASSWORD
JDBC.MYSQL.USERNAME
我尝试使用以下代码,但无法在正则表达式中添加$符号。
BufferedReader reader = new BufferedReader(new FileReader(file));
Pattern pattern = Pattern.compile("value=\"$(.*?)}");
String line;
while((line=reader.readLine())!=null) {
Matcher matcher = pattern.matcher(line);
System.out.println(matcher.group(1));
}
请提出一些解决方案。
正则表达式有几个问题。首先,您错过了{
角色。其次,您需要转义{
,}
和$
字符,因为它们是特殊字符。因此,这将起作用:
Pattern pattern = Pattern.compile("value=\"\\$\\{(.*?)\\}");
另外,您将需要致电matcher.find()
:
if (matcher.find()) {
System.out.println(matcher.group(1));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句