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


必须以“ $”开头,
紧随其后的是任何数字,
然后是空格,最后
然后是“ million”或“ billion”。


因此,例如,正则表达式应匹配以下短语:

$12 million
$6.2 billion


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

$5 thousand
$ 3 million
$3.6


我想出的正则表达式是

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


,但在我测试时不起作用。有人可以帮我吗?谢谢你

最佳答案

转义$以从字面上匹配$。在Java字符串文字中使用反斜杠(\)时应转义。

除非要匹配多个\$+(例如\$),否则将$替换为$$$$

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


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

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



如@Keppil建议,(billion|million)可以写为[mb]illion

关于java - Java正则表达式用于提取货币短语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20877781/

10-09 19:48