字符串只包含一个字符

String contains any but one character

我想检查一个字符串是否包含一个 },它前面有除 \ 之外的任何字符。 据我所知,我可以使用 . 作为 aString.contains(...) 中的元字符来允许该位置的任何字符,但我不知道如何创建类似黑名单的东西: aString.contains(“.(except ‘\‘)}“ 是吗可以不创建自己的方法吗?

你需要正则表达式(从技术上讲你不需要需要正则表达式,但这是最好的方法):

if (aString.matches(".*(?<!\\)}.*"))

这个regex说字符串应该组成如下

  • .* 零个或多个任意字符
  • (?<!\\) 前一个字符不是反斜杠
  • } 大括号
  • .* 零个或多个任意字符

这也适用于第一个字符是大括号的边缘情况。

live demo