用于提取货币短语的Java Regex

时间:2014-01-02 06:50:59

标签: java regex

我试图找到正则表达式从文本中提取特定类型的货币短语,但我遇到了麻烦。我要提取的货币短语的类型

  1. 必须以" $",
  2. 开头
  3. 紧接着是任何一种号码,
  4. 然后是一个空格,最后是
  5. 后面跟着"百万"或"十亿"。
  6. 例如,正则表达式应匹配以下短语:

    $12 million
    $6.2 billion
    

    正则表达式不应与以下短语匹配:

    $5 thousand
    $ 3 million
    $3.6
    

    我提出的正则表达式是

    "$+\\\\d+\\\\s+(billion|million)"
    

    ,但是当我测试它时它没有用。有人可以帮我吗?非常感谢。

1 个答案:

答案 0 :(得分:4)

逃避$以确切匹配$。在Java字符串文字中使用时,反斜杠(\)应该被转义。

\$+替换为\$,除非您的意思是匹配多个$,例如$$$$

"\\$\\d+\\s+(billion|million)"

要匹配$6.2 billion,应修改正则表达式:

"\\$\\d+(\\.\\d+)?\\s+(billion|million)"
  • (billion|million)可以写成[mb]illion,而不是@Keppil建议。