如何在与正则表达式模式不匹配的字符串中查找字符

时间:2019-06-05 19:24:38

标签: java regex

有一个正则表达式,我需要找到与正则表达式不匹配的字符。然后将字符替换为“”。在JAVA中如何实现?

Pattern : ^((?![\|\=\;])[\p{L}\p{N}\p{M}\p{P}\p{Zs}])+$
Sample Text: HAIRCUT $42 PER PERSON
Required output: HAIRCUT 42 PER PERSON

2 个答案:

答案 0 :(得分:2)

否定您已经拥有的东西。

找到(?!(?![|=;])[\p{L}\p{N}\p{M}\p{P}\p{Zs}])[\S\s]
替换nothing

https://regex101.com/r/Sn3DuL/1

 (?!
      (?! [|=;] )
      [\p{L}\p{N}\p{M}\p{P}\p{Zs}] 
 )
 [\S\s]

答案 1 :(得分:1)

您可以替换与正则表达式匹配的字符。

String myString = "HAIRCUT $42 PER PERSON";
myString = myString.replaceAll("^((?![\|\=\;])[\p{L}\p{N}\p{M}\p{P}\p{Zs}])+$", "");

结果:

HAIRCUT 42 PER PERSON