Поэтому я создаю небольшой синтаксический анализатор на C#, где пользователь может вводить имена. Теперь эти имена могут быть в трех форматах:
"name" OR "name / name" OR "name-name"
Пользователь может написать входную строку с другой пунктуацией, такой как name?
или name.
. Чтобы удалить их, я получил регулярное выражение, которое выглядит так:
var expression = "name / name";
var regexPunctuation = new Regex(@"[^-\w\s]");
expression = regexPunctuation.Replace(expression, string.Empty);
Мое регулярное выражение работает для одиночных имен и имен с -
между ними, но не для имен с косой чертой. Если пользователь вводит name / name
, результатом будет просто name name
. Как я могу изменить свое регулярное выражение, чтобы оно игнорировало косую черту, чтобы результат был name / name
? Обратите внимание на дополнительные пробелы между name / name
.
new Regex(@"[^-\w\s/]");
- person DolceVita   schedule 14.06.2017/
нет, просто обработайте единственную частьname
. - person Wiktor Stribiżew   schedule 14.06.2017