У меня есть такое регулярное выражение:
name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487
name = Regex.Replace(name, @"/\W/g", "");
Это регулярное выражение должно заменить «/», «-«, «.» с «».
Но это не так, может кто-нибудь объяснить мне, почему?
Не используйте разделители регулярных выражений:
name = Regex.Replace(name, @"\W", "");
В C # нельзя использовать разделители регулярных выражений, так как синтаксис для объявления регулярного выражения отличается от синтаксиса PHP, Perl или JavaScript или других, которые поддерживают <action>/<pattern>(/<substituiton>)/modifiers
объявление регулярного выражения
Просто чтобы избежать путаницы в терминологии: встроенные модификаторы (обеспечение поиска без учета регистра, многострочный, однострочный, подробный и другие режимы), безусловно, поддерживаются и могут использоваться вместо соответствующих RegexOptions
флаги (хотя количество возможных RegexOptions
flags выше, чем у встроенных модификаторов). Еще, разделители регулярных выражений не влияют на шаблон регулярных выражений вообще, они являются лишь частью синтаксиса объявления и не влияют на сам шаблон. Скажем, они просто заменители ;
или новая строка, разделяющая строки кода.
В C # разделители регулярных выражений не нужны и поэтому не поддерживаются. Perl-стиль s/\W//g
будет написано как var replaced = Regex.Replace(str, @"\W", string.Empty);
, И так далее.
Других решений пока нет …