Итак за выходные накопилось несколько вопросов:
1.Есть выражение: /(B1)(B2)(B3)/s, где в скобках стоят выражения. Есть ли такая функция которая находит выражение /(B1)(B2)(B3)/s и вкидает в масив куски В1, В2, В3. Или как это можно сделать по-другому?
2.Есть выражение: /(B1)(B2)(B3)/s. Как ему сказать, чтобы возвращало только кусок В1 и В3(без В2).
Пробовал писать /(B1)(?:B2)(B3)/s - не получается
3.Как в регах организовуется вевтление? Например у меня такая задача:
В прайсе может указываться оптовая цена а может и не указываться:
1.
РОЗН    ОПТ
12.5     12.1
11.5     11.0
HTML код - 
12,5 11.5
 
 | 12.1 11.0
 2.
 РОЗН    ОПТ
 12.5     12.1
 11.5
 HTML код -
 
 | 12,5 11.5
 
 | 12.1 
 Как правильно вырезать данные?
 
 4.Может кто знает ссылки на книги и руководства по регулярным вырежаниям? Все что встречал в сети - небольшие статейки и мало примеров. Хочется нырять глубже.
 
							
							 
								 
								Записан
							 
 
					
					
						
						
							
								
									
									
									« Ответ #1 : 23 Февраля 2004, 13:50:59 » 
								Abram:Есть ли такая функция которая находит выражение
 а чем [p]preg_match[/p] не устраивает? Abram:Есть выражение: /(B1)(B2)(B3)/s. Как ему сказать, чтобы возвращало только кусок В1 и В3(без В2).
 Код!!! Где Код???!!! Я тебе уже раз доказал, что ищет, еще раз доказать?  Abram:3.Как в регах организовуется вевтление?
 читай статьи  там я описал как пользоваться альтернативами. И примеры там тоже есть... 
							
							 
								 
								Записан
							 работа в Украине 
 
					
					
						
						
							
								
									
									
									« Ответ #2 : 23 Февраля 2004, 18:15:36 » 
								1. а чем preg_match не устраивает? Обьясните пожалуйста с примером: есть выражение:  /(\\d*)([abc]*)([A]*)/ и есть таблица с полями П1 П2 П3  В результате работы скрипта я должен получить в базу: П1 - (\\d)*  П2 - ([abc]*) П3 - [A]*) где в поля пишутся елементы исходного выражения записаного выше.  2. Опять пример: $a="SFSSHSDHDF23dfgGJFJFGJFJF"; Выражение которое вырезает 23dfg: /(\\d*)([a-z]*).  Нужно сделать так чтобы в результате не учитывались символы [a-z]*, тоесть только цифры(Мне нужны цифры которые удовлетворяют этот шаблон) Я писал (\\d*)(?:[a-z]*), но возвращает всю строку $a Как правильно? 
							
							 
								 
								Записан
							 
 
					
					
						
						
							
								
									
									
									« Ответ #3 : 23 Февраля 2004, 18:30:11 » 
								$a="SFSSHSDHDF23dfgGJFJFGJFJF";preg_match("/^[A-Z]*(\\d*)(?:[a-z]*)[A-Z]*$/", $a, $matches);
 print_r($matches);
 Ты в строке ищешь? вот и получается, что тебе строку надо описать, а потом в ней кусок найти.
 
							
							 
								 
								Записан
							 работа в Украине 
 
					
					
						
						
							
								
									
									
									« Ответ #4 : 23 Февраля 2004, 18:44:45 » 
								А как сделать для первого случая с базой данных? 
							
							 
								 
								Записан
							 
 
					
					
						
						
							
								
									
									
									« Ответ #5 : 23 Февраля 2004, 20:10:19 » 
								Ты вообще на каком языке пишешь-то? Ты спрашиваешь как, но не говоришь ЧТО как. В ПХП это будет в так, в Perl - по-другому... 
							
							 
								 
								Записан
							  BlueJacking среди нас 
 
					
					
						
						
							
								
									
									
									« Ответ #6 : 23 Февраля 2004, 23:26:01 » 
								metton он пишет на PHP. Abram:А как сделать для первого случая с базой данных?
 сделать preg_match, запомнить то, что нужно в массив, а потом при помощи [p]foreach[/p] разобрать массив по элементам и сформировать sql запросы, выполнить их.  По регам еще вопросы есть? По php и базам данных вопросы в другом форуме... 
							
							 
								 
								Записан
							 работа в Украине 
   
 |