Мне нужно написать регулярное выражение для «символа опции» для моей компании, чтобы мы могли проверить эти символы на нашем сайте.Можно ли написать регулярное выражение для этого типа текста?
Символ вариант состоит из двух частей:
Part1 Part2
_ _ _ _ _ _ | _ _ _ _ _ _ _ _ _
Я могу написать регулярное выражение для Part2, как это довольно просто.
Однако, часть 1 (первые 6 позиций символов) может быть немного сложной.
Она сводится к тому:
- Part1 должен быть {6} символов длиной всего.
- В первых позициях должно быть между {1,4} альфа-символами.
- После этого может быть {1} числовой символ.
- И, наконец, остальные оставшиеся символы должны быть пробелами, поэтому Part1 составляет до 6 символов.
Проблема, с которой я сталкиваюсь, заключается в том, что количество пробелов является переменной, основанной на количестве символов перед ним. Это заставляет меня думать, что это нелегко представить на регулярном языке.
Как избежать грубого заставить его выглядеть примерно так:
([A-Za-z]{1}[0-9]{1}[ ]{4}|
[A-Za-z]{2}[0-9]{1}[ ]{3}|
[A-Za-z]{3}[0-9]{1}[ ]{2}|
[A-Za-z]{4}[0-9]{1}[ ]{1}|
[A-Za-z]{1}[ ]{5}|
[A-Za-z]{2}[ ]{4}|
[A-Za-z]{3}[ ]{3}|
[A-Za-z]{4}[ ]{2}|
[A-Za-z]{5}[ ]{1})
Вот несколько примеров опционных символов (помните, игнорировать все, за первые 6 символов):
F 123456P12345678
CMG 123456P12345678
AAPL 123456P12345678
GOOG1 123456C12345678
F5 123456C12345678
Может ли часть 2 также начинаться с не буквенно-цифрового символа (пунктуация и т. Д.)? –
Если после первых 6 символов всегда есть материал, а последний символ в 6 всегда является пробелом, тогда '[a-zA-Z] {1,4} \ d? * (?! [^]) 'должен работать. Если строка 'AAAA4 (3 пробела) 1234', то она не будет. – NorthGuard
Часть 2 всегда начинается с числового. – FrankTheTank