奇数の金額を含む文字列があります。文字列は次のとおりです。
Daily interest charges #901 $ 17.2789 259.18 190.07/day
奇数値は$ 17.2789
is を取得する正規表現を作成しようとしていますが、後方参照はありません。これは私が思いついたものです:
(?:\\$\\s*?\\d{0,1,2,3}\\.\\d{0,1,2,3,4}\\s*?/?day)?
ただし、これはコンパイルされません。そこにあるものはすべて私には合理的に見えますか?何が問題なのですか?Javaを使用しています
編集
の m.buettner の提案を試しまし\\$\\s*\\d*\\.\\d*
た。以下の 3 番目のグループに配置します。これでほとんどできます。これが私の完全な正規表現です:
(.*)\s?#(\s?\d{3,4})\s*(?:\$\s*\d*\.\d*)?((?:-|\()?\$?(?:\d{1,3}[ ,]?)*(?:\.\d+)\)?)\s*((?:-|\()?\$?(?:\d{1,3}[ ,]?)*(?:\.\d+)\)?).*
プルするグループは次のとおりです。
- 日割り金利
- 901
- 9 259.18
- 190.07
問題となるのはグループ化 3 です。最初の 1 桁が余分に含まれています。9
編集 編集
問題を引き起こしているスペースがありましたが、これで解決しました:
(?:\$\s*\d*\.\d*\s)?