Я ищу регулярное выражение для соответствия только числовым строкам со специальными символами и размером 4+. Я сделал небольшой обзор по вопросам, размещенным здесь:
Тестирование веб-сайта: http://regexlib.com/RETester.aspx
1- регулярное выражение для числовой и специальной проверки chacter
Решение: ^((?!.*?\d)(?!.*?[^\w\s]).)+$
Я пробовал это регулярное выражение:
2- Регулярное выражение для соответствия строке чисел, включая специальные символы
Решение: ([-()_.+ ]*\d[-()_.+ ]*){4,}
Эти регулярные выражения соответствуют предыдущим строкам. Но есть ошибка. Третья строка 155-555aaa содержит буквы алфавита, а не специальные символы. У нас не должно быть соответствия для 155-555aaa, поскольку это не особый символ. Как изменить это регулярное выражение, чтобы соответствовать только числовой строке со специальными символами. Числовая строка может быть любой формы:
пример: 2433 2- 2432 @234 2- 1234
Специальные символы: [& ~ # "{'[(| -'_\ç ^ à @)]} =} ^ ¨ $$ *% ù]
numeric= цифры
Просто сопоставьте все, что не является [a-zA-Z]
(длиной 4 или более):
^[^a-z\s]{4,}$
Вот тест на RegexPal.
[^az]
а не [az]
С помощью специальных символов = [&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù]
класс для" special or digit "становится просто [0-9&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù]
и полное регулярное выражение становится ^[0-9&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù]{4,}$
.
Но это довольно подозрительно, что ù является особенным, а ú нет.