我需要从段落中读取格式为“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));
}
}
答案 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]