是否有任何正则表达式可用于仅在 java 中的字符串中查找转义字符?

Is there any regex available to find only escape characters in a string in java?

我想从特殊字符列表中过滤掉转义字符。

String data = "21.LRK.31";
char[] charactersInData = data.toCharArray();
Pattern pattern = Pattern.compile("[^0-9^a-z^A-Z]+");
String specialCharacterInData = "";
String escapeCharacterInData = "";
for (int i = 0; i < charactersInData.length; i++) {
    Matcher matcher = pattern.matcher(String.valueOf(charactersInData[i]));
    if (matcher.matches()) {
        specialCharacterInData = String.valueOf(charactersInData[i]);
        break;
    }
}
pattern = Pattern.compile("[^0-9^a-z^A-Z]+");
if (specialCharacterInData.equals(".")) {
    escapeCharacterInData = "\" + specialCharacterInData;
} else {
    escapeCharacterInData = specialCharacterInData;
}
String[] contentOfLicencePlateNumber = data.split(escapeCharacterInData);

这里得到 specialCharacterInData 之后我想再次检查这个特殊字符是否是转义字符,因为要用转义字符拆分字符串你需要在之前添加 2 个反斜杠 (\)那。

如果你想在任何非字母数字字符上拆分一个字符串,那么用一行代码就可以很容易地做到这一点:

String data = "21.LRK.31";
String[] parts = data.split("[^A-Za-z0-9]");

Demo

如果您还有其他需求,请更新您的问题。我怀疑您可能正在做额外的工作,这对于实现您的最终目标不是必需的。

编辑:如果您确实需要对单个未知字符进行转义,请考虑将其放入字符 class。例如:

System.out.println("Hello.World!".split("[.]")[1]);

这将输出 World!,我们可以在元字符点上拆分,而不必担心转义。