ho sbattere la testa contro questo da qualche tempo: voglio catturare tutte le sequenze di caratteri [a-z]+[0-9]?
escluso stringhe come sin|cos|tan
ecc Quindi, dopo aver fatto il mio dovere l'regex seguenti regex dovrebbe funzionare:java regex escludere stringhe specifiche da uno più grande
(?:(?!(sin|cos|tan)))\b[a-z]+[0-9]?
Come vedi io sto usando lookahead negativo con alternanza - il \b
dopo la non-cattura parentesi di chiusura di gruppo è fondamentale per evitare che corrisponde al in
di sin
ecc l'espressione regolare ha un senso e in effetti ho provato con RegexBuddy e Java come implementazione di destinazione e ottenere il risultato desiderato ma non funziona con gli oggetti Java Matcher e Pattern! Qualche idea?
applausi
Nota: non penso che tu abbia bisogno di '?:' Quando usi '?!'. –
il?: Serve per non catturare i gruppi con le sottorappresentazioni, è lì per le perfomance e non dovrebbe essere un problema. Ma ho provato senza inutilmente lo – nvrs
se hai postato alcuni esempi di input e cosa ti aspetti dall'output in ogni caso, penso che più persone sarebbero in grado di aiutare. – ninesided