Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как се оценява операторът ИЛИ с регулярен израз

Ако се интересувате какво се случва, когато използвате | оператор за редуване , отговорът е лесен:регулярният израз обработва израза и входния низ от ляво на надясно .

Като вземем модела, който имате като пример, ^.{8}|.{12}$|.{4} започва да проверява входния низ отляво и проверява за ^.{8} - първите 8 знака. Намира ги и съвпада. След това продължава и намира последните 12 знака с .{12}$ , и отново има съвпадение. След това се съпоставят всички низове от 4 знака.

Демо на Debuggex

След това имате ^.{8}|.{4}|.{12}$ . Изразът отново се анализира отляво надясно, първите 8 знака се съпоставят първо, но след това ще бъдат съпоставени само поредици от 4 знака, .{12} никога няма да задейства, защото ще има .{4} съвпадения!

Демо на Debuggex



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да заявя стойности от xml възли?

  2. Как да активирате компресията на съществуваща таблица в SQL Server (T-SQL)

  3. Как да върнете всички ненадеждни ограничения CHECK в SQL Server (пример за T-SQL)

  4. Внедряване на инкрементално натоварване с помощта на заснемане на промяна на данни в SQL Server

  5. Дизайн на база данни:една огромна таблица или отделни таблици?