Rimozione di tutti i caratteri non di parole con espressioni regolari (delimitatori di espressioni regolari nel modello di espressione regolare C #)

Ho un’espressione regolare come questa:

name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487 name = Regex.Replace(name, @"/\W/g", ""); 

Questa espressione regolare dovrebbe sostituire “/”, “-“, “.” con “”. Ma non è così, qualcuno può spiegarmi perché?

Non usare delimitatori regex:

 name = Regex.Replace(name, @"\W", ""); 

In C #, non è ansible utilizzare i delimitatori regex in quanto la syntax per dichiarare un’espressione regolare è diversa da quella di PHP, Perl o JavaScript o altri che supportano la dichiarazione di regex /(/)/modifiers .

Giusto per evitare la confusione terminologica: i modificatori in linea (che applicano la ricerca insensibile alle maiuscole, multilinea, singleline, verbose e altre) sono certamente supportati e possono essere utilizzati al posto dei corrispondenti flag di RegexOptions (sebbene il numero di possibili flag di RegexOptions sia superiore a quello di modificatori in linea). Tuttavia, i delimitatori di espressioni regolari non influenzano affatto il modello regex, sono solo parte della syntax della dichiarazione e non influiscono sul pattern stesso. Di ‘, sono solo dei sostituti per ; o newline che separano le righe di codice.

In C #, i delimitatori regex non sono necessari e quindi non sono supportati. s/\W//g stile Perl sarà scritto come var replaced = Regex.Replace(str, @"\W", string.Empty); . E così via.