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

从Java正则表达式读取字符串,java,regex,string,Java,Regex,String,我需要从“abc.xyz”格式的段落中读取一个字符串。我对正则表达式非常陌生,我听不懂它的格式,请有人帮我获取数据吗 例如: 日历年查找。年,门店查找。店铺名称,商品查找。类别,商品查找。销售价格,总额(店铺事实。销售数量) 输出: Calendar_year_lookup.Yr Outlet_Lookup.Shop_name Outlet_Lookup.Shop_name Article_lookup.Sale_price Shop_facts.Quantity_sold

我需要从“abc.xyz”格式的段落中读取一个字符串。我对正则表达式非常陌生,我听不懂它的格式,请有人帮我获取数据吗 例如:

日历年查找。年,门店查找。店铺名称,商品查找。类别,商品查找。销售价格,总额(店铺事实。销售数量)

输出:

 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));
        }

    }

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

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

在java中,您必须避开反斜杠

以下方法可能有效

[a-zA-Z].[a-zA-Z]
你的正则表达式应该是

\\w+[.]\\w+
+
是一个量词,它多次匹配前面的字符或组1

可以转义为
\\.
[.]

现在你的代码是

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

它不起作用,我尝试了所有的格式。如果使用Java,你必须使用\\而不是\。我无法读取完整的数据。其切割请检查更新的code@Chinna您应该使用
\w
。请查看编辑..使用
\\p{L}
您只匹配字母表..您也可以使用
[\\p{L}]