Регулярное выражение для чисел со специальными символами ** Только **

0

Я ищу регулярное выражение для соответствия только числовым строкам со специальными символами и размером 4+. Я сделал небольшой обзор по вопросам, размещенным здесь:

Тестирование веб-сайта: http://regexlib.com/RETester.aspx


1- регулярное выражение для числовой и специальной проверки chacter

Решение: ^((?!.*?\d)(?!.*?[^\w\s]).)+$

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

  • 155-555: Совпадение (неверно)
  • 155555: Совпадение (неверно)

2- Регулярное выражение для соответствия строке чисел, включая специальные символы

Решение: ([-()_.+ ]*\d[-()_.+ ]*){4,}

  • 155-555: матч (правильный)
  • 155555: совпадение (правильно)
  • 155-555aaa: совпадение (неверно)

Эти регулярные выражения соответствуют предыдущим строкам. Но есть ошибка. Третья строка 155-555aaa содержит буквы алфавита, а не специальные символы. У нас не должно быть соответствия для 155-555aaa, поскольку это не особый символ. Как изменить это регулярное выражение, чтобы соответствовать только числовой строке со специальными символами. Числовая строка может быть любой формы:

пример: 2433 2- 2432 @234 2- 1234


Специальные символы: [& ~ # "{'[(| -'_\ç ^ à @)]} =} ^ ¨ $$ *% ù]

numeric= цифры

  • 4
    Что за «особый характер»?ぷ особенный?
  • 0
    ok Специальные символы: [& ~ # "{'[(| -`_ \ ç ^ to @)]} =} ^ ¨ $$ *% ù]
Показать ещё 1 комментарий
Теги:
string

2 ответа

5
Лучший ответ

Просто сопоставьте все, что не является [a-zA-Z] (длиной 4 или более):

^[^a-z\s]{4,}$

Вот тест на RegexPal.

  • 0
    Очень интересно. Итак, вы отрицаете все буквы, верно?
  • 1
    Да, следовательно [^az] а не [az]
Показать ещё 3 комментария
1

С помощью специальных символов = [&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù] класс для" special or digit "становится просто [0-9&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù] и полное регулярное выражение становится ^[0-9&~#"{'[(|-''_\ç^à@)]}=}^¨$*%ù]{4,}$.

Но это довольно подозрительно, что ù является особенным, а ú нет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню