【问题标题】:how to write regex for java replaceall function?如何为 java replaceall 函数编写正则表达式?
【发布时间】:2014-05-28 05:35:12
【问题描述】:

我有一个包含字符串的字符串变量

{IF {FILLIN  PDPremium  \* MERGEFORMATPDPremium }= " 0.00" "" "Property DamageSectionInsured ItemsSum Insured( {FILLIN  si_curr  \* MERGEFORMATsi_curr })Premium( {FILLIN  si_curr  \* MERGEFORMATsi_curr }) {FILLIN  covg_desc_temp  \* MERGEFORMATcovg_desc_temp } {FILLIN  covg_si  \* MERGEFORMATcovg_si } {FILLIN  covg_prem  \* MERGEFORMATcovg_prem }"pol_tc_cdpol_tc_desc }

我想换

{FILLIN  PDPremium  \* MERGEFORMATPDPremium } `{FILLIN  covg_si  \* MERGEFORMATcovg_si }

{PDPremium }{covg_si }

FILLIN  PDPremium  \* MERGEFORMAT 

""

如何写正则表达式 我的程序是这样的

public static void main(String[] args) {
    String a = "IF {FILLIN  PDPremium  \\* MERGEFORMATPDPremium }";
    System.out.println(a.replaceAll( "(?i)(FILLIN[^>]*?\\sMERGEFORMAT\\s*)", "" ));

}

【问题讨论】:

  • {FILLIN PDPremium \* MERGEFORMATPDPremium } -> {PDPremium } 我想要这样
  • 请了解何时使用正则表达式,何时不使用。如果要替换字符串文字,请使用 string#replace 字符串文字作为参数
  • 我有很多这样的{FILLIN PDPremium \* MERGEFORMATPDPremium }需要全部替换

标签: java regex replace replaceall


【解决方案1】:

试试这个:

String p = "FILLIN [^\\\\]+\\\\\\\* MERGEFORMAT";
System.out.println(a.replaceAll(p , "" ));

【讨论】:

  • PDPremium 可以是任何东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多