gpt4 book ai didi

java - 为什么以下正则表达式 [^0-9!a-zA-z#\\$% &'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~@\\.]+ 对于 String.split 不起作用?

转载 作者:搜寻专家 更新时间:2023-11-01 01:22:32 26 4
gpt4 key购买 nike

我有这个正则表达式:

[^0-9!a-zA-z#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~@\\.]+

我正在尝试使用

拆分电子邮件地址
[Email]info@emerycommunications.com

但是java中的如下代码:

String fileStr = "[Email]info@emerycommunications.com";

String invalidCharacters = "[^0-9!a-zA-z#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~@\\.]+";

String[] tokens = fileStr.split(invalidCharacters);

for (String token:tokens) {
if (token.contains("@")) {
System.out.println(token);
}
}

正在给出这个输出:

[Email]info@emerycommunications.com

我完全一无所知,因为 invalidCharacters 变量也涵盖了 []

最佳答案

您的字符类中有 A-z,方括号字符按 ASCII(和 Unicode)顺序位于大写 Z 和小写 a 之间。因此 ] 被认为是有效字符而不是无效字符 - 大概您指的是 A-Z

关于java - 为什么以下正则表达式 [^0-9!a-zA-z#\\$% &'\\*\\+\\-/=\\?\\^_`\\{\\|\\}~@\\.]+ 对于 String.split 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com