我正在尝试查找正则表达式以从文本中提取特定类型的货币短语,但遇到了麻烦。我要提取的货币短语的类型
必须以“ $”开头,
紧随其后的是任何数字,
然后是空格,最后
然后是“ 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/