2

我有动态字符串,有时会在其中定价,有时不会。它适用于 craigslist,因此实际上没有固定格式,可以是逗号、破折号等。以下是一些典型字符串的示例:

Xbox 360(黑色)精英控制台 120GB(伊利诺伊州梅森市)200 美元

200 美元 2013 年 North Trail Camper(RT 202。曼彻斯特,缅因州)224 美元/月。

雪地摩托自行车拖车(Winthrop / Augusta)每月 40 美元

“伟大的圣诞礼物”Xbox 360 吉他英雄(弹簧)80 美元

我正在尝试将字符串拆分为标题、位置和价格。我可以通过以下方式获取位置:

Pattern p = Pattern.compile("\(([^]*)\)");
Matcher m = p.matcher(title);

无法弄清楚如何将标题和价格分开。任何帮助,将不胜感激。

4

3 回答 3

2

使用后获取号码$\$[0-9]+正则表达式。

于 2012-12-06T03:35:47.847 回答
0

我个人会使用:

 \$[-0-9.,]+[-0-9.,a-zA-Z]*\b

这将需要很多非数字,但它也会汇总诸如负值$1,000$1mil等等之类的东西。最后\b的将确保它在空格或新行或其他内容之前尽可能多地出现。

于 2012-12-06T03:40:01.787 回答
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);
}
于 2019-09-21T16:40:41.157 回答