| 
 
  
	| Знактокам регулярных выражений - 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
 
 |  |  
		|  |  
		|  |  
  
	| 
 
 | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете голосовать в опросах
 
 |  |