home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.databases.ms-sqlserver      Notorious Rube Goldberg contraption      19,505 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 19,199 of 19,505   
   Erland Sommarskog to rja.carnegie@gmail.com   
   Re: Regular expression question   
   10 Jul 15 21:54:42   
   
   From: esquel@sommarskog.se   
      
    (rja.carnegie@gmail.com) writes:   
   > SQL Server 2005.  The second and third versions of the   
   > following statement print 'Yes', which is unexpected.   
   >   
   > The intention is to test whether the first term is   
   > a compound house "number" such as '1A' or '1-3'.   
   > Either / or \ I thought would perform an "escape"   
   > in the pattern string, to treat a following special   
   > character as the literal character, but it seems to   
   > perform correctly without that, not with.  So this   
   > test may be not doing what I think it is, at all.   
   > And the question is: uh?  ;-)   
   >   
   > IF ( '15' LIKE N'[1-9]%[-A-Z]%'  ) PRINT 'Yes 1'   
   >   
   > IF ( '15' LIKE N'[1-9]%[/-A-Z]%' ) PRINT 'Yes 2'   
   >   
   > IF ( '15' LIKE N'[1-9]%[\-A-Z]%' ) PRINT 'Yes 3'   
   >   
      
   The patterns [/-A-Z] and [\-A-Z] means "all characters in the range from   
   (back)slash to A, as well as hyphen and Z. This will match 15 if digits   
   are in this range in your collation.   
      
   There is no predefined escape character for LIKE, but you can specify one   
   explictly:   
      
     IF '15%' LIKE '[1-9][0-9]!%' ESCAPE '!' PRINT 'Yup'   
     IF '15$' LIKE '[1-9][0-9]!%' ESCAPE '!' PRINT 'Nope'   
      
   You can also use it inside brackets:   
      
     IF '10%' LIKE '[1-9][0!-9]!%' ESCAPE '!' PRINT 'Yup'   
     IF '11%' LIKE '[1-9][0!-9]!%' ESCAPE '!' PRINT 'Nope'   
     IF '1-%' LIKE '[1-9][0!-9]!%' ESCAPE '!' PRINT 'Yup'   
     IF '18%' LIKE '[1-9][0!-9]!%' ESCAPE '!' PRINT 'Nope'   
     IF '19%' LIKE '[1-9][0!-9]!%' ESCAPE '!' PRINT 'Yup'   
      
      
      
      
   --   
   Erland Sommarskog, Stockholm, esquel@sommarskog.se   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca