Нужно регулярное выражение для строки, содержащей символы, за которыми следует четное число цифр - PullRequest
0 голосов
/ 12 ноября 2018

Может кто-нибудь сказать, как я могу написать регулярное выражение для строки, которая принимает один или несколько буквенно-цифровых символов, за которыми следует четное число цифр?

Действительно:

a11a1121
bbbb11a1121

Invalid:

a11a1

Я пытался ^[a-zA-Z*20-9]*$, но это всегда дает истину.

Не могли бы вы помочь в этом отношении?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Упомянутое вами регулярное выражение будет искать любое число [или a-z, или A-Z, или 2, или 0-9]

Вы можете разбить ваше требование на группы и затем обработать его соответствующим образом.

Как будто вам требуется хотя бы один символ. поэтому вы начинаете с ^([a-zA-Z]+)$

Тогда вам нужно число, кратное 2., поэтому вы добавляете ^([a-zA-Z]+(\d\d)+)$

Теперь вам нужно любое количество комбинаций из них. Таким образом, опыт становится: ^([a-zA-Z]+(\d\d)+)*$

Для этих целей вы можете использовать онлайн-инструменты, такие как regex101 . Предоставленное регулярное выражение в действии здесь

0 голосов
/ 12 ноября 2018

Вы можете достичь этого с помощью регулярного выражения: ^[a-z0-9]*[a-z]+([0-9]{2})*$

Объяснение:

  • [a-z0-9]*[a-z]+: строка, состоящая как минимум из одного символа, оканчивающаяся нецифровой единицей
  • ([0-9]{2})*: нечетная последовательность цифр (0 или 2 * n цифр).Если четная последовательность не может быть нулевой, вместо нее используйте ([0-9]{2})+.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...