С# регулярное выражение для соответствия любому символу?
В С# я записываю следующую строку в строковую переменную, возврат каретки и все:
asdfasdfasdf
asdfas<test>asdfasdf
asdfasdf<test>asdfasdf
В Notepad2 я использую это регулярное выражение:
<test>.*<test>
Он выбирает этот текст как ожидалось:
<test>asdfasdf
asdfasdf<test>
Однако, когда я делаю это в С#:
System.Text.RegularExpressions.Regex.Replace(s, "<test>.*<test>", string.Empty);
Он не удаляет строку. Однако, когда я запускаю этот код в строке без возврата каретки, он работает.
Итак, я ищу регулярное выражение, которое будет соответствовать любому персонажу, независимо от того, является ли он управляющим кодом или регулярным символом.
Ответы
Ответ 1
Вы забыли указать, что операция Regex (в частности, оператор .
) должна соответствовать символам all (не все символы кроме\n):
System.Text.RegularExpressions.Regex.Replace(s, "<test>.*<test>", string.Empty, RegexOptions.Singleline);
Все, что вам нужно было добавить, было RegexOptions.Singleline
.
Ответ 2
Использовать однострочный режим:
Regex.Replace(s, "<test>.*<test>", "", RegexOptions.Singleline);