У меня есть строки в виде
[Identifier][Keyword][Number]Text
Где идентификатор - \w*
, ключевое слово - одно из Button
, Link
или Text
, число - [0-9]*
, а текст - буквальное слово Text
. Я пытаюсь сопоставить строки, которые не соответствуют этому шаблону.
Примеры, которые я бы хотел подобрать:
- MyIdentifier
- MyIdentifierText
- MyIdentifierButton
- MyIdentifierButton1
- Кнопка
- Button1
- Текст
Примеры, которые я не хочу подбирать:
- ButtonText
- MyIdentifierButtonText
- Button1Text
- MyIdentifierButton1Text
- TextText
- Text1Text
Я придумал это:
^\w*(?:(?<!Button)|(?<!Link)|(?<!Text))[0-9]*(?<!Text)$
Это верно, за исключением того, что оно не соответствует следующему:
Я знаю, что проблема с первым взглядом, но я не уверен, как это исправить. Я прочитал это , и это не помогло, но этот вопрос также не имел подстановочного знака перед взглядом позади.