2

私は動的な文字列を持っていますが、価格が含まれる場合と含まれない場合があります。クレイグリスト用なので、実際には設定された形式はありません。コンマ、ダッシュなどがあります。典型的な文字列の例を次に示します。

Xbox 360(黒)エリートコンソール120GB(メイソンシティイリノイ)$ 200

$ 200 2013 North Trail Camper(RT202。メイン州マンチェスター)$224/月。

スノーモービルバイクトレーラー(ウィンスロップ/オーガスタ)月額$ 40

「素晴らしいクリスマスギフト」XBox360Guitar Hero(Springfied)$ 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 に答える