2014-01-06 4 views
4

Регулярное выражение должно выполнять эти желания.Нужно регулярное выражение для ProductID

Столица A. Затем следуют 3 или более необязательных символа. Регулярное выражение должно заканчиваться на капитал X или Y или Z.

Must FULLFILL:

A3546sdfsdf6546sdf654Z 
A123qze46548X 

не должны выполнять:

A123qze46548XY 
A123qze46548XYZ 

Это то, что я получил, но он не работает:

A.{3,}([X]|[Y]|[Z]) 

с этим регулярным выражением также будет выполнено

A123qze46548XY 
A123qze46548XYZ 

Мне это не нравится .. Я что-то делаю с оператором Or, я думаю.

любая помощь?

Thanx

+0

Какой двигатель регулярного выражения вы используете? (Какой язык программирования вы используете?) – falsetru

+0

Я использую тестер регулярных выражений, который был создан в vb.net. – Fosa

ответ

2

Попробуйте следующее регулярное выражение:

^A.{2,}[^XYZ][XYZ]$ 
  • [^XYZ] соответствует любому символу, который не X, Y или Z.
+0

Ha! Просто избили меня. – acarlon

+0

Большое вам спасибо – Fosa

1

Попробуйте это:

^A.{3,}\d([X]|[Y]|[Z])$ 

Если вы специально не хотите, X или Y или Z перед последним X | Y | Z, но все остальные символы ОК, а затем выполните следующие действия:

^A.{3,}(?<![XYZ])[XYZ]$ 

где: ?<! - это негативный вид.

+0

Thanx bro! Ответ тоже верен! Но я надеюсь, вы понимаете, что фальшетру был быстрее! Но эй, спасибо за ответчика! мир – Fosa

+0

@Fosa - yup falsetru был быстрее и проще. – acarlon

+0

@Fosa - есть настройка в зависимости от того, будет ли число до последнего X | Y | Z всегда быть цифрой. Посмотрите мое второе регулярное выражение - не знаете, если это необходимо для вашего дела. – acarlon

Смежные вопросы