| 
                   | 
                
                  
                    
                      
                      DEELX 正则表达式扩展语法:递归表达式
                      回到:目录 | 上一页:条件表达式 | 下一页:匹配模式 
                       
            递归表达式 (?R)
                      对另一部分子表达式的引用,而不是对其匹配结果的引用。当被引用的表达式包含自身,则形成递归引用。 
                       
                      说明
                      相对于 "反向引用" 来说,反向引用是在匹配过程中,对匹配到的字符串内容进行引用,而 "递归匹配" 是对表达式进行引用。举例说明: 
            
              
                
                  | 
                   表达式  | 
                  
                   等效的表达式1  | 
                  
                   等效的表达式2  | 
                  
                   可以匹配  | 
                 
                
                  | 
                   (\w)(?1)  | 
                  
                   (\w)(\w)  | 
                  
                      | 
                  
                   ab  | 
                 
                
                  | 
                   (?1)(\w(?2))(\d)  | 
                  
                   (?1)(\w(\d))(\d)  | 
                  
                   (\w(\d))(\w(\d))(\d)  | 
                  
                   a1b23  | 
                 
               
             
            如果被引用的表达式又包含自身,则形成了递归引用。举例说明: 
            
              
                
                  | 
                   表达式  | 
                  
                   等效1  | 
                  
                   等效2  | 
                  
                   可以匹配  | 
                 
                
                  | 
                   (\w(?1)?) 
                   | 
                  
                   (\w(\w(?1)?)?)  | 
                  
                   (\w+)  | 
                  
                   ghjk5……  | 
                 
                
                  | 
                   \(([^()]|(?R))*\)  | 
                  
                   \(([^()]|\(([^()]|(?R))*\))*\)  | 
                  
                      | 
                  
                   (a * (c + 2))  | 
                 
               
             
                      DEELX 支持的递归表达式格式有: 
                      
              
                
                  | 
                   格式  | 
                  
                   说明  | 
                 
                
                  | 
                   (?R)  | 
                  
                   对整个表达式的递归引用。  | 
                 
                
                  | 
                   (?R1),(?R2)  | 
                  
                   对指定分组的递归引用。  | 
                 
                
                  | 
                   (?1),(?2)  | 
                 
                
                  | 
                   (?R<named>)  | 
                  
                   对指定命名分组的递归引用。  | 
                 
                
                  | 
                   (?R'named')  | 
                 
               
             
                         | 
                     
                   
                   | 
              
              
                | 
                  
                   |