У меня есть оператор:
У меня есть строка такой как
content = "* test *"
Я хочу искать и заменить его поэтому, когда я сделан, строка содержит это:
content = "(*) test (*)"
Мой код:
content = Regex.Replace(content, "*", "(*)");
Но это вызывает ошибку в C#, потому что он думает, что * часть Синтаксиса Регулярных выражений.
Как я могу изменить этот код, таким образом, он изменяет все звездочки в моей строке к (*) вместо этого, не вызывая ошибку периода выполнения?
Поскольку *
является метасимволом регулярного выражения, когда он нужен как буквальная звездочка вне определения класса символов, его нужно экранировать с помощью \
to \ *
.
В C # это можно записать как "\\ *"
или @ "\ *"
.
В C # также должен быть универсальный метод «цитирования», чтобы вы могли заключить произвольную строку в кавычки и сопоставить ее как литерал.
В этом простом сценарии вам не нужно регулярное выражение. Вы можете использовать String.Replace:
content = content.Replace("*", "(*)");
Используйте Regex.Escape ()
Он возьмет всю строку и превратит ее во что-то, что можно использовать как часть регулярного выражения.