正则表达式,包括除“〜”和“,”之外的所有键盘字符

时间:2009-05-07 10:53:52

标签: regex

如何编写包含除“〜”和“,”之外的所有键盘字符的正则表达式?

6 个答案:

答案 0 :(得分:21)

你试过这个吗?

[^~,]

现在要排除不在键盘中的字符,我相信你必须全部包含它们。

[a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()\[\]{}_+=|\\-]

它几乎涵盖了它(即使它看起来像是一种疯狂的方式来完成任务)。也许问题定义可以帮助您在第一个列表[^~,]中添加要排除的更多内容,而不是尝试创建所有键盘字符的巨大列表。

答案 1 :(得分:4)

你没有说你正在使用什么语言/工具,但在Java中我会使用这个正则表达式:

"[\\p{Print}&&[^~,]]"

这是两组的交集:所有打印的ASCII字符,以及所有不是代字号或逗号的字符。

答案 2 :(得分:3)

我必须这样才能让正则表达式工作:

"[^~,][^~,]*" 

因为[^~,]否定了~,

[^~,]*表示~,的零个或多个副本(对我们的案例来说无用)

并通过添加[^~,][^~,]*可以取消~,

的一个或多个副本

答案 3 :(得分:1)

这对我有用:

[A-Za-z0-9-]+[ 0-9A-Za-z#$%=@!{},`~&*()'<>?.:;_|^/+\t\r\n\[\]"-]*

答案 4 :(得分:1)

相关的一个。

我浪费了很多时间搜索,所以下面是我想出的答案。

我想所有键盘键(包括空格和标签页)

// all keys (including space and tab)
var allKeyboardKeysRegex = /^[a-zA-Z0-9~`!@#\$%\^&\*\(\)_\-\+={\[\}\]\|\\:;"'<,>\.\?\/  ]*$/;

// example tests
var nonShiftChars = "`1234567890-=  qwertyuiop[]\asdfghjkl;'zxcvbnm,./ "
var shiftChars = "~!@#$%^&*()_+{}|:\"<>? ";
var someAlphaNumeric = "aAbB12 89yYzZ";

// test with allKeyboardKeysRegex
allKeyboardKeysRegex.test(nonShiftChars);
allKeyboardKeysRegex.test(shiftChars);
allKeyboardKeysRegex.test(someAlphaNumeric);

输出:

true
true
true

如果你想排除某些字符,那么只需从第1行正则表达式行(allKeyboardKeysRegex)上删除它们。

示例:

// removing '~' and ','
var allKeyboardKeysRegexMinusSome = /^[a-zA-Z0-9`!@#\$%\^&\*\(\)_\-\+={\[\}\]\|\\:;"'<>\.\?\/   ]*$/;

希望能帮助别人。

答案 5 :(得分:0)

所有支持的键盘字符的Reg-Ex对我有用:

/^[a-zA-Z0-9.!@?#"$%&:';()*\+,\/;\-=[\\\]\^_{|}<>~` ]+$/

除了'〜'和','字符:

/^[a-zA-Z0-9.!@?#"$%&:';()*\+\/;\-=[\\\]\^_{|}<>` ]+$/