从Java正则表达式中读取字符串

时间:2013-05-28 10:20:48

标签: java regex string

我需要从段落中读取格式为“abc.xyz”的字符串。我是正常表达的新手,我很难听到阅读格式,请任何人帮助我获取数据 例如:

Calendar_year_lookup.Yr,Outlet_Lookup.Shop_name,Article_lookup.Category,Article_lookup.Sale_price,sum(Shop_facts.Quantity_sold)

输出:

 Calendar_year_lookup.Yr    
  Outlet_Lookup.Shop_name  
 Outlet_Lookup.Shop_name
Article_lookup.Sale_price
Shop_facts.Quantity_sold

代码:

 public static void main(String[] args)
    {
        // TODO Auto-generated method stub

        String  data="Calendar_year_lookup.Yr,Outlet_Lookup.Shop_name,Article_lookup.Category, Article_lookup.Sale_price, sum(Shop_facts.Quantity_sold)";

        //data.matches("\w\.\w");
        Pattern pattern = Pattern.compile("\\p{L}+[.]\\p{L}+");
        Matcher matchers=pattern.matcher(data);
        //System.out.println(matchers);
        if(matchers.find())
        {
        System.out.println(matchers.group(0));
        }

    }

3 个答案:

答案 0 :(得分:1)

如果我理解你的模式,正则表达式将是:

"[a-zA-Z]+\.[a-zA-Z]+"

你必须逃避java中的反斜杠!

答案 1 :(得分:0)

你的正则表达式应该是

\\w+[.]\\w+

+是一个量词,它匹配前一个字符或组 1 多次

.可以\\.[.]

进行转义

现在你的代码将是

while(m.find())
{
    m.group(0);//your value
}

答案 2 :(得分:-2)

以下可能有效

[a-zA-Z].[a-zA-Z]