如何替换Java中特定子字符串的所有出现?

问题描述 投票:0回答:1

我正在尝试替换在圆括号前或圆括号后出现的字符串中的空白。

例如字符串“ 8 /(1 + 3)-6 ^ 2”

应更改为:“ 8 /(1 + 3)-6 ^ 2”

我假设这将使用replaceAll方法,但是我不熟悉如何针对我的特定情况正确使用此表达式。

非常感谢您的帮助。

java regex replaceall
1个回答
0
投票

括号(打开和关闭)是正则表达式中的特殊字符。因此,必须使用\对其进行转义,这在Java中通常也是一个特殊字符,因此必须使用另一个\对其进行转义。尽管看起来很奇怪,但您想要的是类似的东西>

String s = "8 / ( 1 + 3 ) - 6 ^ 2";
System.out.println(s.replaceAll("\\(\\s*", "(").replaceAll("\\s*\\)", ")"));

首先将所有开放式括号替换为任意空格,然后仅用开放式括号替换空白。然后,它将任何数量的空格和一个封闭的括号替换为封闭的括号。输出(根据要求)

8 / (1 + 3) - 6 ^ 2
© www.soinside.com 2019 - 2024. All rights reserved.