我试图找到正则表达式从文本中提取特定类型的货币短语,但我遇到了麻烦。我要提取的货币短语的类型
例如,正则表达式应匹配以下短语:
$12 million
$6.2 billion
正则表达式不应与以下短语匹配:
$5 thousand
$ 3 million
$3.6
我提出的正则表达式是
"$+\\\\d+\\\\s+(billion|million)"
,但是当我测试它时它没有用。有人可以帮我吗?非常感谢。
答案 0 :(得分:4)
逃避$
以确切匹配$
。在Java字符串文字中使用时,反斜杠(\
)应该被转义。
将\$+
替换为\$
,除非您的意思是匹配多个$
,例如$$$$
。
"\\$\\d+\\s+(billion|million)"
要匹配$6.2 billion
,应修改正则表达式:
"\\$\\d+(\\.\\d+)?\\s+(billion|million)"
(billion|million)
可以写成[mb]illion
,而不是@Keppil建议。