使用Java的REgular表达式

时间:2014-04-02 12:32:44

标签: java regex

我正在使用正则表达式来打破字符串,我试图打破字符串但是在reqular表达式中我缺少一些格式。任何人都可以让我知道我哪里出错了。

String betweenstring="['Sheet 1$'].[DEPTNO] AS [DEPTNO]";
System.out.println("betweenstring: "+betweenstring);
Pattern pattern = Pattern.compile("\\w+[.]\\w+");
Matcher matchers=pattern.matcher(betweenstring);    
while(matchers.find())
{       
    String filtereddata=matchers.group(0);          
    System.out.println("filtereddata: "+filtereddata);
}

我需要像这样打破:

['Sheet 1$']
[DEPTNO] AS [DEPTNO]

1 个答案:

答案 0 :(得分:2)

鉴于您的具体输入,此正则表达式可以正常工作。

([\w\[\]' $]+)\.([\w\[\]' $]+)

捕获组1是在时段之前,捕获组2之后。要为Java字符串转义:

Pattern pattern = Pattern.compile("([\\w\\[\\]' $]+(\\.*[\\w\\[\\]' $]+)");

但是,如果这是你想要实现的,那么将字符串拆分到文字点会容易得多:

String[] pieces = between.split("\\.");
System.out.println(pieces[0]);    
System.out.println(pieces[1]);

输出:

['Sheet 1$']
[DEPTNO] AS [DEPTNO]