![]()  | 
    ![]()  | 
    |
		
			
  | 
	|||||||
| Programmierung Rat & Tat für Programmierer | 
![]()  | 
	
	
| 
		 | 
	Themen-Optionen | Ansicht | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Inventar 
			![]() Registriert seit: 08.02.2000 
				
				
				
					Beiträge: 1.696
				 
				
				
				
 | 
	
	
	
		
		
			
			 Hallo RegEx-Profis, 
		
	
		
		
		
		
		
		
			ich will aus dem folgenden oder ähnlichen Strings Code: 
	ok.ef = ok.de * mult * (4 - 2) / 2 + f.test1(3, f.test2()) Bei meinen bisherigen Versuchen wird immer die letzte Klammer "vergessen" ( [\w\.]+\(.*?\) ). Kann mir jemand sagen, wie ich dieses Problem löse? Danke 
				____________________________________ 
		
		
		
		
		
		
	
	Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			
			
			 Inventar 
			![]() Registriert seit: 04.11.2001 
				
				Alter: 45 
				
					Beiträge: 2.150
				 
				
				
				
 | 
	
	
	
		
		
			
			 Warte mal... 
		
	
		
		
		
		
		
		
			wenn ich dich richtig verstanden habe, hast du ein "nested parentheses" Problem? Also er matcht die ersten zwie Klammern, die zusammenpassen? function(param, funcasparam()) Vielleicht hilft die das weiter: \( ( (?>[^()]+) | (?R) )* \) First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non- parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis. HTH ~ 
				____________________________________ 
		
		
		
		
		
		
	
	LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			
			
			 Inventar 
			![]() Registriert seit: 08.02.2000 
				
				
				
					Beiträge: 1.696
				 
				
				
				
 | 
	
	
	
		
		
			
			 Puh, schaut ja wild aus... Danke, werd ich mir merken! Ich habs jetzt aber schon anders gelöst: 
		
	
		
		
		
		
		
		
			Code: 
	// search for next , or )
int p = 0; int c = 0;
for(int i = 0; i < Param.Count; i++)
{
	if((string)Param[i] == "(")	p ++;		// count (
	if((string)Param[i] == "," && p == 0)	// , found
	{
		// handle parameter
		c = i + 1;
	}
	if((string)Param[i] == ")" && p == 0)	// matching ) found
	{
		// handle last parameter (if any)
		lineStack.Add("fend");
		return true;
	}
	if((string)Param[i] == ")")	p --;		// count )
}
				____________________________________ 
		
		
		
		
		
		
	
	Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			
			
			 Inventar 
			![]() Registriert seit: 04.11.2001 
				
				Alter: 45 
				
					Beiträge: 2.150
				 
				
				
				
 | 
	
	
	
		
		
			
			 ahhh... 
		
	
		
		
		
		
		
		
			Ich hab am Anfang gar net kapiert was die Func eigentlich macht - jetzt hat der Blitz eingschlagn ![]() ~ 
				____________________________________ 
		
		
		
		
		
		
	
	LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
		
  | 
	
		
  |