2010-10-19 2 views
0

Когда у меня есть выражение объявлено какRegular Expression Pattern Ошибка C#

someText = Regex.Replace(someText, @"/*.*?*/", ""); 

Ошибка Говорит System.ArgumentException: пар "/*.*?*/" синтаксического - Вложенный Квантор *.

Как переписать код, чтобы избежать этой ошибки?

+2

КАК вы говорите, что вы хотите, чтобы регулярное выражение делало? Не имеет смысла давать синтаксически правильное выражение, не зная, что он должен делать. – sipwiz

ответ

0

Это не нравится, что у вас есть это: ?*

В основном это переводится как «ноль или один из предыдущего выражения ноль или более раз», что кажется немного странным. Я почти уверен, что это то же самое, что сказать «ноль или больше раз». Можете ли вы объяснить, что вы пытаетесь сделать более подробно?

Я подозреваю, что если вы измените регулярное выражение на это он будет делать то, что вы хотите:

(/*.*)*/

+0

Я работаю в шаблоне T4, который сгенерировал хранимую процедуру. Я взял некоторую строку из Интернета, она выдает ошибку – arun

+0

Я не понимаю, о чем вы говорите. Независимо от того, откуда она взялась, ваша проблема - это то, о чем я говорил выше. –

0

Может быть то, что требуется, это словесное описание или образец того, что вы пытаетесь соответствовать. Вот моя догадка о том, чего вы хотите. Я просто добавил побег для "?" персонаж.

string someText = Regex.Replace(someText, @"/*.*\?*/", ""); 
+0

Я работаю в дозвуковой генерации хранимой процедуры, я скопировал некоторую строку из Интернета, она выдает ошибку. Чтобы перечислить весь код, все это может сбить с толку. – arun

0

Похоже, вы пытаетесь разобрать/* */комментарии стиля. Вы можете попробовать следующее выражение:

someText = Regex.Replace(someText, @"/\*.*\*/", ""); 

Это гарантирует, что ваши * будут экранированы как фактические символы.