// Pattern
{{\s*.*?(?!contact\.firstName|contact\.lastName|contact\.phoneNumber|contact\.language)\s*}}
// String
test {{debug}} {{contact.language}} test {{another}}
Я пытаюсь соответствовать подстроки, которые находятся между {{ }}
, которые не являются в определенном наборе строк (contact.firstName
, contact.lastName
, contact.phoneNumber
, contact.language
). Теперь в этом примере так получилось, что текст, который я хотел исключить, имеет contact.
. Но нет, это может быть любой текст и может содержать символы и пробелы.Matching подстроку, которая не содержит определенную подстроку
В этом примере мне необходимо сопоставить {{debug}}
и {{another}}
. Если я правильно понимаю регулярное выражение, оно должно соответствовать любому (даже пустому) значению, отличному от тех, которые перечислены ниже (?!)
. Тем не менее, он поддерживает соответствие {{contact.language}}
возможно из-за части .*
.
Как можно сопоставить что-либо иное, чем те, что определены в наборе? Я не особенно разбираюсь в регулярном выражении, поскольку я не использую его на повседневной основе.
Когда '' c' в {{contact.language}} 'потребляется'. *? ',' Оставшиеся ontact.language}} 'не соответствует ни одной из' контакта \ .firstName | контакт \ .lastName | контакт \ .phoneNumber | контакт \ .language'. – Gumbo
Короче говоря, вы хотите отбросить все, что начинается с 'contact.'? –
@CasimiretHippolyte. Так получилось, что текст, который я хочу найти, имеет «контакт». Но это может быть что угодно, а не только «контакт». – Joseph