是否有任何正则表达式可用于仅在 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]");
如果您还有其他需求,请更新您的问题。我怀疑您可能正在做额外的工作,这对于实现您的最终目标不是必需的。
编辑:如果您确实需要对单个未知字符进行转义,请考虑将其放入字符 class。例如:
System.out.println("Hello.World!".split("[.]")[1]);
这将输出 World!
,我们可以在元字符点上拆分,而不必担心转义。
我想从特殊字符列表中过滤掉转义字符。
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]");
如果您还有其他需求,请更新您的问题。我怀疑您可能正在做额外的工作,这对于实现您的最终目标不是必需的。
编辑:如果您确实需要对单个未知字符进行转义,请考虑将其放入字符 class。例如:
System.out.println("Hello.World!".split("[.]")[1]);
这将输出 World!
,我们可以在元字符点上拆分,而不必担心转义。