Eliminación de todos los caracteres que no son palabras con expresiones regulares (delimitadores de expresiones regulares en el patrón de expresión regular C #)

Tengo una expresión regular como esta:

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

Esta expresión regular debería reemplazar “/”, “-“, “.” con “”. Pero no es así, ¿alguien me puede explicar por qué?

No use los delimitadores de expresiones regulares:

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

En C #, no puede usar delimitadores de expresiones regulares ya que la syntax para declarar una expresión regular es diferente de la de PHP, Perl o JavaScript u otros que admitan la statement de expresiones regulares de /(/)/modifiers .

Solo para evitar confusiones terminológicas: los modificadores en línea (aplicación de búsqueda insensible a mayúsculas / minúsculas, multilínea, línea única, verbosa y otros modos) son ciertamente compatibles y pueden utilizarse en lugar de las banderas RegexOptions correspondientes (aunque el número de posibles indicadores RegexOptions es mayor que el de modificadores en línea). Sin embargo, los delimitadores de expresiones regulares no influyen en absoluto en el patrón de expresiones regulares, solo son parte de la syntax de statement y no afectan el patrón en sí. Digamos que son sustitutos ; o nueva línea que separa las líneas de código.

En C #, los delimitadores de expresiones regulares no son necesarios y, por lo tanto, no son compatibles. Estilo perl s/\W//g se escribirá como var replaced = Regex.Replace(str, @"\W", string.Empty); . Y así.