On Fri, 2011-10-21 at 11:08 -0400, Alex wrote: > guenther, thanks for spending the time to help with this. Back to the > books to learn more about REs.
Frankly, the RE part was not that complicated. With an exception of the /s modifier of my solution. Your REs where not bad either. The most important issue with your RE is hardly taught in books -- properly anchoring your RE. The crucial parts to the solution as outlined are (a) SA rule types, their specifics and peculiarities, and (b) a method to develop and test your rules, and see the match. Thus, I suggest carefully re-reading my full explanation. Try to understand every part of it, and play around with rules to see the effect of each part for yourself. -- char *t="\10pse\0r\0dtu\0.@ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4"; main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1: (c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}