Home > Software engineering >  How to replace special characters and numbers with the character and spaces on each side
How to replace special characters and numbers with the character and spaces on each side

Time:12-10

So basically I'm trying to convert this string: "(1 2) / 2" to this "( 1 2 ) / 2". And I've tried this:

String inputInfix = input.replaceAll("[^0-9/]", " [^0-9/] ");

But it doesn't work, is there some way to replace every character except "/" and the digits with a space on either side. For example, "(1 / 2)" -> " ( 1 / 2 )"

CodePudding user response:

You can use

input.replaceAll("(?<=[^\\s/])(?=[^\\s/])", " ")

See the regex demo. Details:

  • (?<=[^\s/]) - a positive lookbehind that matches a location that is immediately preceded with a char other than a whitespace char and a slash
  • (?=[^\s/]) - a positive lookahead that matches a location that is immediately followed with a char other than a whitespace char and a slash.
  • Related