May 03, 2007
code:
 import std.stdio;
 import std.regexp;

 void main()
 {
	char[] str = r"a
	b";
	char[] pattern = ".+";
	if ( RegExp(pattern).test(str) )
	{
		str = RegExp(pattern).match(str)[0];//无论用什么Attribute,总是只匹配第一行的a,也就是.无法跨行
		writefln(str);
	}
	else {writefln("failed");}
 }

output:a

seems "." dos not match any character, as it misses newline
May 04, 2007
yidabu wrote:
> code:
>  import std.stdio;
>  import std.regexp;
> 
>  void main()
>  {
> 	char[] str = r"a
> 	b";
> 	char[] pattern = ".+";
> 	if ( RegExp(pattern).test(str) )
> 	{
> 		str = RegExp(pattern).match(str)[0];//无论用什么Attribute,总是只匹配第一行的a,也就是.无法跨行
> 		writefln(str);
> 	}
> 	else {writefln("failed");}
>  }
> 
> output:a
> 
> seems "." dos not match any character, as it misses newline

That's the way regexes work.  I wish the docs for "." would say "Matches any character, except a newline". Because people have asked this before.

Good regex tester here, much easier to try out stuff: http://www.stringtools.com/