我有动态字符串,有时会有价格,有时不会。它的craigslist所以实际上没有设置格式可以有逗号,短划线等。以下是典型字符串的一些示例:
Xbox 360(黑色)精英控制台120GB(伊利诺伊州梅森城)200美元
$ 200 2013 North Trail Camper(RT 202.曼彻斯特,缅因州)$ 224 /月。
Snowmobile自行车拖车(Winthrop / Augusta)每月40美元
“伟大的圣诞礼物”XBox 360吉他英雄(Springfied)$ 80
我正在尝试将字符串拆分为标题,位置和价格。我可以抓住位置:
Pattern p = Pattern.compile("\(([^]*)\)");
Matcher m = p.matcher(title);
无法弄清楚如何将标题和价格分开。任何帮助将不胜感激。
答案 0 :(得分:2)
要在使用$
之后获取号码:\$[0-9]+
正则表达式。
答案 1 :(得分:0)
我个人会用:
\$[-0-9.,]+[-0-9.,a-zA-Z]*\b
这将需要相当多的非数字,但它也会像负值,$1,000
,$1mil
之类的东西。最后的\b
将确保它在空格或新线之前尽可能地全球化。
答案 2 :(得分:0)
要获取$
之后的号码,请使用\$(\d+)
正则表达式。
请注意捕获括号,可以通过m.group(1)
访问所需的值。
Java代码中的双转义反斜杠也是如此。
请参见下面的代码段
Pattern p = Pattern.compile("\\$(\\d+)");
Matcher m = p.matcher(title);
String output = "";
if (m.find()) {
output = m.group(1);
}