Регулярные выражения исключают из класса - PullRequest
0 голосов
/ 07 сентября 2010

Я строю динамический генератор кода и использую регулярные выражения. Учитывая этот блок текста

##Properties
                            public #PropertyType# #NewProperty#
                            {
                                get; set;
                            }
##
##Events
                            public event #EventName#-#EventExt#;
##
                            }
                            #endregion

Я хочу иметь возможность извлекать в блоки текста, а именно:

##Properties
                            public #PropertyType# #NewProperty#
                            {
                                get; set;
                            }
##

и

##Properties
                            public #PropertyType# #NewProperty#
                            {
                                get; set;
                            }
##

Я пытался использовать это ##[\S\s]+## в качестве выражения, но оно принимает оба и объединяет их в одно. Поэтому мне было интересно, есть ли способ исключить символы "##" из класса [\ S \ s], чтобы он не распознавался. Есть ли такой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

Попробуйте использовать ленивое регулярное выражение:

##[\S\s]+?##

Это будет соответствовать как можно меньшему числу символов.

1 голос
/ 07 сентября 2010

Попробуйте

##(?:[^#]|#(?!#))+##
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...