Я пытаюсь создать регулярное выражение, которое не соответствует слову (только a-z), если слово имеет :
в конце, но в противном случае оно соответствует ему. Однако это слово находится в середине большего регулярного выражения, и поэтому я (не думаю) вы можете использовать отрицательный lookbehind и метасимвол $
.
Вместо этого я попробовал этот негативный взгляд:
([a-z]+)(?!:)
но этот тестовый пример
example:
просто соответствует
exampl
вместо отказа.
Если вы используете отрицательный просмотр, вы можете поместить его в начало:
(?![a-z]*:)[a-z]+
i.e: "совпадение хотя бы одного a-z char, за исключением того, что следующие символы: от 0 до n 'a-z', за которыми следует ':'"
Это будет поддерживать большее регулярное выражение:
X(?![a-z]*:)[a-z]+Y
будет соответствовать следующей строке:
Xeee Xrrr:Y XzzzY XfffZ
только "XyyyY"
[а-г] + (?! [: А-г])
([a-z]+\b)(?!:)
утверждает границу слова в конце совпадения и, таким образом, терпит неудачу "exampl"
Попробуйте следующее:
[a-z]\s