 
			
				09.07.2013, 17:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от lancer
			
		
	 | 
 
	| 
		В чем смысл "?", если возможность отсутствия элемента уже описана звездочкой.
	 | 
 
	
 
 Есть такое свойство, как жадность..   http://javascript.ru/tutorial/regexp-specials
т.есть жадность в  /B.*A/ , может с размаху захватить первые A  
хотя в данном паттерне "?" - не нужна, /посколь достаточно захватить любое из А  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Deff, 09.07.2013 в 18:00.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				09.07.2013, 22:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Deff
			
		
	 | 
 
	
		т.есть жадность в  /B.*A/ , может с размаху захватить первые A  
хотя в данном паттерне "?" - не нужна, /посколь достаточно захватить любое из А
	 | 
 
	
 
 сомнительная экономия но при ? быстрее найдёт.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 13:10
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.01.2008 
					
					
					
						Сообщений: 230
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Пример замены открывающего тега. 
text = '1 <A href="#">...</A> 2'
text = text.replace(/<A([^>]*)>/, 'TEST')
alert(text)
 
Зачем здесь применяется группировка при помощи круглых скобок, ведь звездочка действует только на один символ, который располагается перед ней, в данном случае на фигурные скобки.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 13:12
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		это не один символ -- это всё кроме >  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 13:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.01.2008 
					
					
					
						Сообщений: 230
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	| 
		это не один символ -- это всё кроме >
	 | 
 
	
 
 Знаю, но не суть, я имел ввиду на A она никак действовать не может, только на один символ или выражение в кдвадратных скобках слева от себя. На один символ/одно выражение в скобках, A под эту звездочку никак не попадает.
 
Поэтому  вопрос про круглые скобки остается(он через один ответ выше).
 
Еще вопрос про то как жадность проявляется.
 
text = '1 <A href="#">...</A> 2'
text = text.replace(/<A([^>]*)>/, 'TEST')
alert(text)
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	
		При запуске вы увидите, что заменяется не открывающий тэг, а вся ссылка, выражение матчит ее от начала и до конца. 
 
Это происходит из-за того, что точка-звездочка в "жадном" режиме пытается захватить как можно больше, в нашем случае - это как раз до последнего >.
	 | 
 
	
 
 Следуя какой-такой логике она пытается захватить как можно больше >, если выражение [^>], к которому она относится, не ищет >? Но получается в тоже время содержание > в этом выражении и есть причина жадности на символы >?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось lancer, 10.07.2013 в 17:26.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 17:23
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.01.2008 
					
					
					
						Сообщений: 230
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Up 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 21:33
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от lancer
			
		
	 | 
 
	| 
		Внимательно прочел здесь статью регулярные выражения, нашел там, что "|" это "или", но не нашел ничего про "и".
	 | 
 
	
 
 это как, на одном месте одновременно и одно и другое что ли 
в том и смысл, что на одном месте либо одно, либо другое
 
задачу опиши точнее  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.07.2013, 22:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 29.05.2013 
					
					
					
						Сообщений: 71
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от lancer
			
		
	 | 
 
	| 
		Следуя какой-такой логике она пытается захватить как можно больше >, если выражение [^>], к которому она относится, не ищет >? Но получается в тоже время содержание > в этом выражении и есть причина жадности на символы >?
	 | 
 
	
 
 <[^>]*> аналогично <.*?> (ну с учетом особенностей точки) 
Запись <[^>]*?> смысла не имеет.
 
	
 
	| 
		
			Сообщение от lancer
			
		
	 | 
 
	| 
		Зачем здесь применяется группировка при помощи круглых скобок, ведь звездочка действует только на один символ, который располагается перед ней, в данном случае на фигурные скобки.
	 | 
 
	
 
 Скобки - это еще и выделение под-совпадений, которые вы можете использовать дальше в коде, или использовать в замене. Например, text.replace(/<A([^>]*)>/, '<TEST$1>')  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.07.2013, 14:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 30.01.2008 
					
					
					
						Сообщений: 230
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от bes
			 
		
	 | 
 
	
		это как, на одном месте одновременно и одно и другое что ли 
в том и смысл, что на одном месте либо одно, либо другое 
 
задачу опиши точнее
	 | 
 
	
 
 В первом топике описана задача, там все предельно ясно, скорее всего невнимательно прочел. Она уже решена, спасибо  Deff'y.
 
Сейчас остались вопросы начиная  с этого поста про скобки.
 
В ответе  MiksIr не вижу ответа на вопросы, про те скобки в том числе.
 MiksIr ответил:
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		Скобки - это еще и выделение под-совпадений, которые вы можете использовать дальше в коде, или использовать в замене. Например, text.replace(/<A([^>]*)>/, '<TEST$1>')
	 | 
 
	
 
 Там дальше как раз таки ничего не используется и группировать на мой взгляд нечего, поэтому и спрашиваю.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось lancer, 11.07.2013 в 14:17.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.07.2013, 14:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 29.05.2013 
					
					
					
						Сообщений: 71
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Зануда. Конкретно по тому посту - скобки там не нужны. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |