我有一个不应包含在字符串中的字符集。此外,连续任意字符的数量是未知的。我需要在字符串中找到每个带有特殊字符的子字符串并将其替换为空格。
这是我的选择:
string.replace("[\n\r\t\u000B\u000C]*".toRegex(), " ");
问题是它出于某种原因在每个字符后替换了一个空格。我哪里错了?
我有一个不应包含在字符串中的字符集。此外,连续任意字符的数量是未知的。我需要在字符串中找到每个带有特殊字符的子字符串并将其替换为空格。
这是我的选择:
string.replace("[\n\r\t\u000B\u000C]*".toRegex(), " ");
问题是它出于某种原因在每个字符后替换了一个空格。我哪里错了?
方括号
[ ]中的字符是字符类。它意味着输入任何列出的字符的所需组合。[ ]*- 字符数0及更多;[ ]+- 字符数1及更多;[ ]- 只有一个列出的字符。在这种情况下,优先选项是
[ ]+,否则替换时会出现很多空格。请参阅正则表达式
UPD:要将所有出现的不同空白字符序列替换为单个空格,您可以使用:
请参阅是否有可能以某种方式在一个 replace() 中更改多个字符