Ответ 1
(?!^\d+$)^.+$
Это говорит о поиске строк, которые не содержат всех цифр и соответствуют всей строке.
Можно ли написать регулярное выражение, которое соответствует всем строкам, которое не только содержит числа? Если у нас есть эти строки:
Он должен соответствовать четырем первым, но не последним. Я пробовал заниматься в RegexBuddy с помощью взглядов и прочее, но я не могу понять, как это сделать.
(?!^\d+$)^.+$
Это говорит о поиске строк, которые не содержат всех цифр и соответствуют всей строке.
Если мне что-то не хватает, я думаю, что самое сжатое регулярное выражение...
/\D/
... или, другими словами, есть ли цифра в строке?
/^\d*[a-z][a-z\d]*$/
Может быть цифра в начале, затем по крайней мере одна буква, затем буквы или цифры
jjnguy имел правильную (если немного избыточную) версию более ранней версии.
.*?[^0-9].*
@Chad, ваше регулярное выражение,
\b.*[a-zA-Z]+.*\b
должно, вероятно, допускать не буквы (например, пунктуацию), хотя примеры Svish не включали их. Основным требованием Svish было: не все цифры.
\b.*[^0-9]+.*\b
Затем вам не нужен +, потому что все, что вам нужно, - это гарантировать, что там находится не цифра (возможно, там будет больше, чем закрыто. * на концах).
\b.*[^0-9].*\b
Затем вы можете покончить с \b на обоих концах, так как это ненужные ограничения (ссылаясь на буквенный символ и _).
.*[^0-9].*
Наконец, обратите внимание, что это последнее регулярное выражение показывает, что проблема может быть решена только с помощью основ, тех основ, которые существовали в течение десятилетий (например, нет необходимости в функции поиска). На английском языке вопрос был логически эквивалентен простому запросу, чтобы 1 символ встречного примера был найден внутри строки.
Мы можем проверить это регулярное выражение в браузере, скопировав следующее в строку местоположения, заменив строку "6576576i7567" тем, что вы хотите проверить.
javascript:alert(new String("6576576i7567").match(".*[^0-9].*"));
Так как вы сказали " соответствие", а не только проверку, следующее регулярное выражение будет правильно соответствовать
\b.*[a-zA-Z]+.*\b
Прохождение тестов:
abc
a4c
4bc
ab4
1b1
11b
b11
Неудачные тесты:
123
Попробуйте следующее:
/^.*\D+.*$/
Он возвращает true, если есть какой-то символ, который не является числом. Хорошо работает со всеми языками.
если вы пытаетесь сопоставить миры, имеющие хотя бы одну букву, но они образованы цифрами и буквами (или просто буквами), это то, что я использовал:
(\d*[a-zA-Z]+\d*)+
Если мы хотим ограничить допустимые символы, чтобы строка могла быть сделана из ограниченного набора символов, попробуйте следующее:
(?!^\d+$)^[a-zA-Z0-9_-]{3,}$
или
(?!^\d+$)^[\w-]{3,}$
/\ ш +/: Соответствует любой букве, номеру или подчеркиванию. любой символ слова