正则表达式需要适用于两种类型的字符串

时间:2013-08-19 10:55:43

标签: regex

我有两个这样的字符串:

  1. PDY_24.45_USD_ASTRO
  2. PDY_24.45USD_ASTRO
  3. 我需要将24.45_USD24.45USD替换为*

    我写的是

    final String REPLACEDIGITS= "(\\d*\\.\\d*)(\\_)(\\w{3})";
    

    但它为一个而不是为另一个工作。如果我删除\\_,则适用于其他人。但我想要一个适用于两者的正则表达式。任何忽略_

    的解决方案

    谢谢, swapna

2 个答案:

答案 0 :(得分:1)

为了使某些内容成为可选项,您之后会添加?,因此您可以使用_?来选择匹配下划线

这个表达式:

(\d+(\.\d+)?)_?(\w{3})

将下划线设为可选,并且还允许整数,即25_USD25USD以及24.45_USD24.45USD

答案 1 :(得分:0)

请尝试(\d*\.\d*)(\_)?(\w{3})