【发布时间】:2012-06-05 18:36:56
【问题描述】:
我使用正则表达式
r="[^A-Za-z0-9]+";
检测一个字符串是否有一个或多个字符,而不是字母和数字;
然后我尝试了以下方法:
Pattern.compile(r).matcher(p).find();
我测试过:
! @ # $ % ^ & * ( ) + =- [ ] \ ' ; , . / { } | " : < > ? ~ _ `
大多数时候,除了后挡板 \ 和插入符号 ^ 之外,它都可以工作。
例如
String p = "abcAsd10^" (return false)
String p = "abcAsd10\\" (return false)
有什么我想念的吗?
【问题讨论】:
-
我得到了“abcAsd10\\”和“abcAsd10^”的匹配,所以这里它返回true。请注意,我使用 C#,所以我认为它必须使用 Java。如果您编写一个小代码示例来演示您的问题,它会有所帮助。
-
FWIW,两个字符串似乎都匹配 on Ideone。
-
对不起,我有 r="[^A-za-z0-9]+"; (带有小“z”)。这会导致返回“false”
-
你现在有答案了吗?不清楚您的问题或问题本身是否有类型。
-
我有 r="[^A-za-z0-9]+";在我的代码中(带有小“z”,即 A-z)。这会导致返回“false”。但是为什么它可以与除反溅\和插入符号^之外的其他特殊字符一起使用?
标签: java regex special-characters