 
			
				05.08.2017, 17:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Помогите написать регулярку
			 
			
		
		
		
		Привет всем. Помогите составить регулярное выражение, уже бьюсь пол дня и все никак. 
Есть строка  
	
 
	| 
		 Код: 
	 | 
 
	12:32   Вася Пупкин наложил проклятие на игрока Петя  | 
 
	
 
 
Нужно доставать из этой строки имя первого игрока Вася Пупкин.    
Спасибо, что обратили внимание на тему.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 17:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Если Пупкин всегда вначале, то "Вася Пупкин наложил проклятие на игрока Петя".split(" ", 2).join(" "). 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 05.08.2017 в 18:06.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 18:28
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	| 
		Если Пупкин всегда вначале, то "Вася Пупкин наложил проклятие на игрока Петя".split(" ", 2).join(" ").
	 | 
 
	
 
 Дело в том, что Вася Пупкин - это ник, который всегда разный и перед ним временная метка. Получается что-то вроде такого шаблона: 
20:13    <name 1> наложил проклятье на <name 2> 
И нужно динамически получать name 1.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 18:40
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		vovnet, 
если ник не содержит цифр
  
var reg =/\D+(?=наложил проклятие)/;
var str = "12:32   Вася Пупкин наложил проклятие на игрока Петя";
str = str.match(reg);
str = str ? str[0]:"";
alert(str.trim());
  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось рони, 05.08.2017 в 18:42.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 18:45
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		vovnet, 
  
var reg =/\d+:\d+(.*)(?=наложил проклятие)/;
var str = "12:32   Вася2018 Пупкин наложил проклятие на игрока Петя";
str = str.match(reg);
str = str ? str[1]:"";
alert(str.trim());
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 18:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от vovnet
			
		
	 | 
 
	| 
		Дело в том, что Вася Пупкин - это ник, который всегда разный и перед ним временная метка
	 | 
 
	
 
 Должны быть четкие определения. То что сперва метка времени, а за ней обязательно ник, это уже хорошо, но Пупкин может быть и просто Пупкиным, а не Васей, или Васей Пупкиным Преображенским, а речь может идти о чем угодно, а это уже сложности.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 19:00
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		vovnet,  
 
var reg =/\d+:\d+(.*)(?=наложил проклятие)/;
var str = "12:32   Вася2018 Пупкин наложил проклятие на игрока Петя";
str = str.match(reg);
str = str ? str[1]:"";
alert(str.trim());
 
	 | 
 
	
 
 Спасибо, вроде то что нужно. А как можно в строку поиска вставить переменную со вторым ником, чтобы было наподобие:
 
var nick = "Петя";
var reg =/\d+:\d+(.*)(?=наложил проклятие + nick)/;
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 19:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от vovnet
			
		
	 | 
 
	| 
		Спасибо, вроде то что нужно.
	 | 
 
	
 
 У вас что конкретно для этой строки поиск, о проклятии Васи Пупкина? Ведь если текст будет иной, это работать не будет. И поиск var nick = "Петя";, это если узнать что такой именно есть, как собственно и для Пупкина в таком случае, иначе же это просто глупость.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 19:11
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		vovnet,
  на ... ?  зачем?
 
var nick = "Петя";
var reg = new RegExp("\\d+:\\d+(.*)(?=наложил проклятие на игрока "+nick+")");
var str = "12:32   Вася2018 Пупкин наложил проклятие на игрока Петя";
str = str.match(reg);
str = str ? str[1]:"";
alert(str.trim());
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				05.08.2017, 19:40
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ну чтобы можно было фильтровать различных персонажей   
Спасибо!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |