0

我需要从“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));
        }

    }
4

3 回答 3

1

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

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

你必须在java中转义反斜杠!

于 2013-05-28T10:24:31.410 回答
0

你的正则表达式应该是

\\w+[.]\\w+

+是与前面的字符或组1匹配多次的量词

.可以转义为\\.[.]

现在您的代码将是

while(m.find())
{
    m.group(0);//your value
}
于 2013-05-28T10:30:34.773 回答
-2

以下可能有效

[a-zA-Z].[a-zA-Z]
于 2013-05-28T10:24:55.703 回答