Подтвердить что ты не робот

С# регулярное выражение для соответствия любому символу?

В С# я записываю следующую строку в строковую переменную, возврат каретки и все:

asdfasdfasdf
asdfas<test>asdfasdf

asdfasdf<test>asdfasdf

В Notepad2 я использую это регулярное выражение:

<test>.*<test>

Он выбирает этот текст как ожидалось:

<test>asdfasdf

asdfasdf<test>

Однако, когда я делаю это в С#:

System.Text.RegularExpressions.Regex.Replace(s, "<test>.*<test>", string.Empty);

Он не удаляет строку. Однако, когда я запускаю этот код в строке без возврата каретки, он работает.

Итак, я ищу регулярное выражение, которое будет соответствовать любому персонажу, независимо от того, является ли он управляющим кодом или регулярным символом.

4b9b3361

Ответ 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);