2010-09-07 115 views
0

我正在构建动态代码生成器并使用正则表达式。 由于此段文字正则表达式排除类别

##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

尝试使用懒惰的正则表达式:

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

这将匹配尽可能少的字符越好。

1

尝试

##(?:[^#]|#(?!#))+##