从Java正则表达式读取字符串
我需要从“abc.xyz”格式的段落中读取一个字符串。我对正则表达式非常陌生,我听不懂它的格式,请有人帮我获取数据吗 例如: 日历年查找。年,门店查找。店铺名称,商品查找。类别,商品查找。销售价格,总额(店铺事实。销售数量) 输出:从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
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}]