我正在使用正则表达式来打破字符串,我试图打破字符串但是在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]
答案 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]