如何编写包含除“〜”和“,”之外的所有键盘字符的正则表达式?
答案 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.!@?#"$%&:';()*\+\/;\-=[\\\]\^_{|}<>` ]+$/