Знактокам регулярных выражений - regexp_like 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		Gobur Профи
 
  Вступление в Клуб: 06.11.2012
  | 
		
			
				 Пн Дек 17, 2018 15:07   Знактокам регулярных выражений - regexp_like | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Подскажите, почему для строки 99.3 следующее рег.выражение дает Истину
 
 
 	  | Код: | 	 		  select 1
 
from dual 
 
where regexp_like('99.3','^\d{1,16}((\.\d{2})|(\d\.\d)|(\d{2}))$') | 	  
 
 
А для 9.3 - ложь?
 
 	  | Код: | 	 		  select 1
 
from dual 
 
where regexp_like('9.3','^\d{1,16}((\.\d{2})|(\d\.\d)|(\d{2}))$') | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Пн Дек 17, 2018 15:37    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				в первом случае \d{1,16} - первая 9ка
 
(\d\.\d) - 9.3
 
во втором условия для .3 нет | 
			 
		  | 
	 
	
		  | 
	 
	
		Эмиралька Эксперт
 
  Вступление в Клуб: 09.11.2015
  | 
		
			
				 Ср Дек 19, 2018 10:16   Re: Знактокам регулярных выражений - regexp_like | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | Gobur пишет: | 	 		  
 
[code]...
 
А для 9.3 - ложь?
 
[code]select 1
 
from dual 
 
where regexp_like('9.3','^\d{1,16}((\.\d{2})|(\d\.\d)|(\d{2}))$')[/code] | 	  
 
 
'^\d{1,16}((\.\d{2})|(\d\.\d)|(\d{2}))$' 
 
- с начала строки
 
- цифра 1-16 раз
 
- один из вариантов:
 
  - точка
 
  - две цифры
 
или
 
  - цифра
 
  - точка
 
  - цифра
 
или
 
  - ещё две цифры
 
 
- конец строки
 
 
разбираем.
 
ведущая цифра 1 раз присутствует.
 
далее следует точка. Вариант для совпадения только один - первый. Но в первом варианте требуется две цифры после точки, а у тебя одна. Итого ложь.
 
 
А не проще ли было вписать певое и последнее условия внутрь веток? Или выкинуть ветки, а сделать три regexp_like с простыми условиями через OR.
 
Есть также вариант вообще обойтись без регекспов. Будет и проще, и быстрее. | 
			 
		  | 
	 
	
		  | 
	 
	
		Gobur Профи
 
  Вступление в Клуб: 06.11.2012
  | 
		
			
				 Ср Дек 19, 2018 10:29   Re: Знактокам регулярных выражений - regexp_like | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | Эмиралька пишет: | 	 		  
 
 
А не проще ли было вписать певое и последнее условия внутрь веток? Или выкинуть ветки, а сделать три regexp_like с простыми условиями через OR.
 
Есть также вариант вообще обойтись без регекспов. Будет и проще, и быстрее. | 	  
 
 
Это у ЦФТ в приложении по 440-П так проверяется формат числа 16.2.
 
 
Но как теперь понятно - условие кривое. Спасибо. | 
			 
		  | 
	 
	
		  | 
	 
	
		Эмиралька Эксперт
 
  Вступление в Клуб: 09.11.2015
  | 
		
			
				 Ср Дек 19, 2018 14:14   Re: Знактокам регулярных выражений - regexp_like | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Gobur пишет: | 	 		  | Это у ЦФТ в приложении по 440-П так проверяется формат числа 16.2. | 	  
 
А. ясно. Круто, типа. | 
			 
		  | 
	 
	
		  | 
	 
	
		Andry Участник - экстремал
 
  Вступление в Клуб: 14.01.2009
  | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |