正则表达式
/[\D\S]/应匹配非数字或非空格的字符
但是当我在regexpal中测试这个表达式时
它开始匹配任何数字、空格的字符
我做错了什么?
发布于 2013-05-21 22:05:37
\D =除数字外的所有字符,\S =除空格外的所有字符
[\D\S] =以上字符组的所有字符= union (set theory)字符。
为什么?因为\D包含\s,而\S包含\d。
如果你想匹配不是白行也不是空格的字符,你可以使用[^\d\s]。
发布于 2013-05-21 22:05:22
您的正则表达式在运行过程中会使自身失效。将正则表达式放在[]中意味着它必须匹配其中的一项。这两个项目相互覆盖,最终匹配所有内容。从理论上讲,任何非数字的字符都会与其他字符匹配。可用,并且任何非空格与任何数字和任何其他字符匹配。也是。
您可以尝试使用[^\d\s],它表示取消任何数字或任何空格的匹配。这将否定\d和\s的匹配,而不是在原始正则表达式中捕获所有内容。你可以在here上看到用它做的测试。
https://stackoverflow.com/questions/16672016
复制相似问题