REGEX для пробелов между буквенно-цифровой строкой - PullRequest
0 голосов
/ 11 декабря 2018

Можете ли вы помочь мне построить регулярное выражение, которое будет соответствовать любому из следующих шаблонов:

  1. N0007120DJKAWE (от 9 до 14 буквенно-цифровых символов)
  2. N 0007120DJKAWE (1-йпозиция - буквенно-цифровая, 2-я и 3-я позиция может быть пробелом, далее может быть от 8 до 13 буквенно-цифровой)
  3. N0007120D KAWE (10 буквенно-цифровая, 10-я и 11-я позиция может быть пробелом, затем может быть от 1 до 4 буквенно-цифровых)

Я пробовал:

  1. (\b(?=[\dA-Za-z]*\d)(?=[\dA-Za-z]*[A-Za-z])[\dA-Za-z]{9,14}\b)
    
  2. (\b[\dA-Z]{1}[\s]{1,2}[\dA-Z]{8,13}\b)
    
  3. ((?=[\dA-Za-z]*\d)(?=[\dA-Za-z]*[A-Za-z])[\dA-Z]{10}[\s]{1,2}[\dA-Z]{1,4})
    

Как мы можем создать одно регулярное выражение для всех шаблонов

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Это похоже на работу:

/ \ ^ w {9,14} $ | ^ \ w \ s {0,2} \ w {8,13} $ | ^ \ w{9} \ s {0,2} \ w {1,4} $ /

0 голосов
/ 11 декабря 2018

Исходя из ваших требований, приведенных выше, у меня сработало следующее:

^[a-zA-Z0-9]{9,14}$|^[a-zA-Z0-9] {1,2}[a-zA-Z0-9]{8,13}$|^[a-zA-Z0-9]{10} {1,2}[a-zA-Z0-9]{1,4}$

Вот объяснение:

^: Соответствует началу строки

$: совпадать с концом строки

[a-zA-Z0-9] {9,14}: сопоставлять любые буквенно-цифровые символы от 9 до 14 раз включительно (ПРИМЕЧАНИЕ: [a-zA-Z] соответствует только символам, а \ w также соответствует _)

space {1,2}: совпадать с 1 или 2 пробелами

ПРИМЕЧАНИЕ. Определенно проверить regex101.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...