Come aggiungere un trattino a regex

Ho incontrato questo modello

(\w+) 

e dal sito http://gskinner.com/RegExr/ capisco che \w = combina caratteri alfanumerici e caratteri di sottolineatura, e + = corrisponde al token precedente 1 o più volte (non è esattamente sicuro di cosa significhi).

Come posso aggiungere il trattino alla lista?

Ho provato (\w\-+) ma non funziona, non ho alcuna corrispondenza …

Hai bisogno di una class di caratteri, indicata da [...] . \w può quindi essere utilizzato nella class di caratteri e possono essere aggiunti più caratteri:

 [\w-] 

Attento però, se aggiungi altri personaggi da abbinare. Il trattino-meno deve essere il primo o l’ ultimo di una class per evitare di interpretarlo come un intervallo (o sfuggire di conseguenza).

Il + è un quantificatore, quindi va dopo un token (dove l’intera class di caratteri è un singolo token [come è \w ]):

 ([\w-]+)