正则表达式java从属性中读取

时间:2014-11-09 05:07:31

标签: java regex string properties

我在java中有一个正则表达式的任务,我有一个问题。

sentences = text.split();

如何从regexp.properties文件传递给()正则表达式

regexp.DECLARATIVE_SENTENCE = "\\."; 

例如。

我可以使用像

这样的常量
public static final String DECLARATIVE_SENTENCE  = "\\.";  

而不是

sentences = text.split(DECLARATIVE_SENTENCE);

但我需要从属性文件中读取参数。我怎样才能做到这一点?以资源包为例?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望从属性文件中加载正则表达式值。

为此,您可以在Java中使用名为Properties的类。

public Properties GetPropertiesFile(String location) throws IOException {
   Properties prop = new Properties();
   FileInputStream inputStream = null;

   try
   {
      inputStream = new FileInputStream(location);
      prop.load(inputStream);
   } finally {
      if (inputStream != null) {
         inputStream.close();
      }
   }

   return prop;
}

您可能需要使用FileInputStream并根据您的情况使用getClass().getClassLoader().getResourceAsStream,但这可能会让您接近。

以下是您使用上述功能的方法:

Properties prop = GetPropertiesFile("regexp.properties");
String regex = prop.getProperty("DECLARATIVE_SENTENCE");

String[] ret = str.split(regex);

您可能需要根据您的配置更改属性文件位置,如果属性文件是资源,甚至可能更改FileInputStream

答案 1 :(得分:-2)

import java.util.ResourceBundle;

ResourceBundle rb = ResourceBundle.getBundle(resourceBundleName);
rb.getString(DECLARATIVE_SENTENCE)