我有两个这样的字符串:
PDY_24.45_USD_ASTRO
PDY_24.45USD_ASTRO
我需要将24.45_USD
和24.45USD
替换为*
我写的是
final String REPLACEDIGITS= "(\\d*\\.\\d*)(\\_)(\\w{3})";
但它为一个而不是为另一个工作。如果我删除\\_
,则适用于其他人。但我想要一个适用于两者的正则表达式。任何忽略_
谢谢, swapna
答案 0 :(得分:1)
为了使某些内容成为可选项,您之后会添加?
,因此您可以使用_?
来选择匹配下划线
这个表达式:
(\d+(\.\d+)?)_?(\w{3})
将下划线设为可选,并且还允许整数,即25_USD
或25USD
以及24.45_USD
和24.45USD
答案 1 :(得分:0)
请尝试(\d*\.\d*)(\_)?(\w{3})
。