| 
	| 
	
	| 
		
	| 
			
			 
			
				02.08.2010, 13:59
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 11.12.2008 
						Сообщений: 44
					 
		
 |  |  
	| 
				Вложенность в ругулярных выражениях
			 Всем привет. 
Помогите пожалуйста сделать вложенную замену в регулярном выражении в исходных данных вида "Hello "world", yahoo!", в «Hello «world», yahoo!»
 
Сделал замену без вложенностей так:
 
function replace(node) {
	var decs = node[0].text;
	var quote = /"([^"]*)"/g;
	decs = decs.replace(quote, '«$1»');
	return decs;
}
Спасибо. |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 14:33
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| А как скрипт должен догадаться, так нужно заменять «Hello «world», yahoo!» или так «Hello »world«, yahoo!»? Кавычки-то не отличаются друг от друга. |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 14:51
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 11.12.2008 
						Сообщений: 44
					 
		
 |  |  
	| 
	
 
	| Сообщение от Kolyaj   |  
	| А как скрипт должен догадаться, так нужно заменять «Hello «world», yahoo!» или так «Hello »world«, yahoo!»? Кавычки-то не отличаются друг от друга. |  
	
 Спасибо за замечание, упустил из виду, вложенные кавычки должны быть вида: «Hello „world“, yahoo!» |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 14:53
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| Нет, вы не поняли. Вот встретили вы в строке кавычку ". На что её нужно заменить: «, », „ или “? |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:02
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 11.12.2008 
						Сообщений: 44
					 
		
 |  |  
	| 
	
 
	| Сообщение от Kolyaj   |  
	| Нет, вы не поняли. Вот встретили вы в строке кавычку ". На что её нужно заменить: «, », „ или “? |  
	
 Хорошо, поясню так. 
Допустим, в предложении у нас нет вложенных кавычек:
В "Интерросе" это подтвердили, хотя в марте—апреле компания говорила о такой возможности. 
Но могут быть предложения, где имеют быть место вложенные кавычки, пример:
"Любой buy-back, когда ты ("Интеррос".— "Ъ") управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций". 
Мне необходимо заменить кавычки вида "" на типографские — «» в случае если нет вложенных кавычек, т. е. так:
В «Интерросе» это подтвердили, хотя в марте—апреле компания говорила о такой возможности. 
и так, если есть вложенные кавычки:
«Любой buy-back, когда ты („Интеррос“.— „Ъ“) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций». 
Стало понятней? |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:20
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от artwalek |  
	| Но могут быть предложения, где имеют быть место вложенные кавычки, пример: "Любой buy-back, когда ты ("Интеррос".— "Ъ") управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций".
 |  
	
 Вы упорно не хотите формализовать задачу. Это вам, человеку, понятно, что тут вложенные кавычки. А как глупая машина должна понять, что здесь именно вложенные кавычки, а не несколько блоков текста, заключённых в кавычки, идущие друг за другом. В этом примере, например, в кавычках находится три блока текста 
 
Любой buy-back, когда ты ( 
.—  
) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций 
 
Как эту ситуацию отличить от вложенных кавычек? |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:35
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 11.12.2008 
						Сообщений: 44
					 
		
 |  |  
	| 
	
 
	| Сообщение от Kolyaj   |  
	| Вы упорно не хотите формализовать задачу. Это вам, человеку, понятно, что тут вложенные кавычки. А как глупая машина должна понять, что здесь именно вложенные кавычки, а не несколько блоков текста, заключённых в кавычки, идущие друг за другом. В этом примере, например, в кавычках находится три блока текста 
 Любой buy-back, когда ты (
 .—
 ) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций
 
 Как эту ситуацию отличить от вложенных кавычек?
 |  
	
 Думаю формализовать так: делать либо вложенную замену, либо двойной проход строки. Второй вариант мне кажется предпочтительней: сперва менять все на левую кавычку, а а на втором менять каждую вторую. |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:42
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от artwalek |  
	| Второй вариант мне кажется предпочтительней: сперва менять все на левую кавычку, а а на втором менять каждую вторую. |  
	
 Так никогда не будет вложенных кавычек. Вы всё-таки не понимаете всего масштаба проблемы. Тут, например, какие кавычки, вложенные или нет?
 
"aaa"bbb"ccc"
 
Может вам лучше типограф  попробовать заюзать? |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:47
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 11.12.2008 
						Сообщений: 44
					 
		
 |  |  
	| 
	
 
	| Сообщение от Kolyaj   |  
	| Так никогда не будет вложенных кавычек. Вы всё-таки не понимаете всего масштаба проблемы. Тут, например, какие кавычки, вложенные или нет? 
 "aaa"bbb"ccc"
 
 Может вам лучше типограф попробовать заюзать?
 |  
	
 Возможно и не осознаю, для меня это пока в новинку.
 
"aaa"bbb"ccc" — я думаю вложенные. 
Типограф Лебедевский не подходит, нужно именно на JS. |  |  
	| 
		
	| 
			
			 
			
				02.08.2010, 15:51
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| 
	
 
	| Сообщение от artwalek |  
	| "aaa"bbb"ccc" — я думаю вложенные. |  
	
 Почему?
 
	
 
	| Сообщение от artwalek |  
	| Типограф Лебедевский не подходит, нужно именно на JS. |  
	
 Можно бэкенд на сервере сделать, и подгружать результаты JS-ом. |  |  
 
 
 
 |  |