Регулярное выражение, которое включает все символы клавиатуры, кроме «~» и «,» - PullRequest
12 голосов
/ 07 мая 2009

Как написать регулярное выражение, включающее все символы клавиатуры, кроме '~' и ','?

Ответы [ 6 ]

21 голосов
/ 07 мая 2009

Вы пробовали это?

[^~,]

Теперь, чтобы исключить символы, отсутствующие на клавиатуре, я считаю, что вы должны включить их все.

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

Который в значительной степени покрывает это (хотя это выглядит как сумасшедший способ добиться цели). Возможно, определение проблемы может помочь вам добавить больше материалов для исключения в первый список [^~,], чем пытаться создать огромный список всех символов клавиатуры.

4 голосов
/ 07 мая 2009

Вы не сказали, какой язык / инструмент вы используете, но в Java я бы использовал это регулярное выражение:

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

Это пересечение двух наборов: все печатные символы ASCII и все символы, которые не являются тильдой или запятой.

3 голосов
/ 09 октября 2013

Я должен был сделать это для регулярного выражения для работы:

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

потому что [^~,] отрицает ~ и ,

[^~,]* означает ноль или несколько копий ~ и , (что бесполезно для нашего случая)

и, поставив [^~,][^~,]*, вы получаете отрицание одной или нескольких копий ~ или ,

1 голос
/ 03 апреля 2018

Связанный.

Я потратил много времени на поиски, поэтому ниже приводится ответ, который я нашел.


Я хотел все клавиши клавиатуры (включая пробел и табуляцию) :

// 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`!@#\$%\^&\*\(\)_\-\+={\[\}\]\|\\:;"'<>\.\?\/   ]*$/;

Надеюсь, это кому-нибудь поможет.

1 голос
/ 03 ноября 2011

Это сработало для меня:

[A-Za-z0-9-]+[ 0-9A-Za-z#$%=@!{},`~&*()'<>?.:;_|^/+\t\r\n\[\]"-]*
0 голосов
/ 04 октября 2016

Reg-Ex для всех поддерживаемых символов клавиатуры работал для меня:

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

За исключением символов '~' и ',':

/^[a-zA-Z0-9.!@?#"$%&:';()*\+\/;\-=[\\\]\^_{|}<>` ]+$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...