首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >被取反的速记字符类的意外工作

问被取反的速记字符类的意外工作
EN

Stack Overflow用户
提问于 2013-05-21 22:02:57
回答 2查看 128关注 0票数 4

正则表达式

代码语言:javascript
复制
/[\D\S]/

应匹配非数字或非空格的字符

但是当我在regexpal中测试这个表达式时

它开始匹配任何数字、空格的字符

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-21 22:05:37

\D =除数字外的所有字符,\S =除空格外的所有字符

[\D\S] =以上字符组的所有字符= union (set theory)字符。

为什么?因为\D包含\s,而\S包含\d。

如果你想匹配不是白行也不是空格的字符,你可以使用[^\d\s]。

票数 6
EN

Stack Overflow用户

发布于 2013-05-21 22:05:22

您的正则表达式在运行过程中会使自身失效。将正则表达式放在[]中意味着它必须匹配其中的一项。这两个项目相互覆盖,最终匹配所有内容。从理论上讲,任何非数字的字符都会与其他字符匹配。可用,并且任何非空格与任何数字和任何其他字符匹配。也是。

您可以尝试使用[^\d\s],它表示取消任何数字或任何空格的匹配。这将否定\d和\s的匹配,而不是在原始正则表达式中捕获所有内容。你可以在here上看到用它做的测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16672016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档