用于替换特定文本的正则表达式包含前导,尾随空格或特殊字符

时间:2017-02-20 11:58:24

标签: java regex

如何用****替换字符串如果字符串包含前导或尾随空格或特殊字符。

以下是可能的模式示例:

  1. " Sonia "****
  2. " Sonia"****
  3. "Sonia "****
  4. "Sonia,"****,
  5. "{Sonia}"{****}
  6. 注意:String是从java

    构造的动态字符串

    我需要使用哪种模式来替换字符串?

1 个答案:

答案 0 :(得分:1)

如果要替换空格包围的单词,则可以在Java中使用此基于外观的正则表达式替换:

String input = "Dear Cdr. Sonia S S,";

String repl = input.replaceAll("(?<= )\\p{L}+(?= )", "****");
//=> Dear Cdr. **** **** S,
  • (?<= ) - Lookbehind断言前一个字符是空格
  • (?= ) - 预见断言下一个字符是空格

RegEx Demo