-2

私が間違っていることを教えていただければ幸いです。

私は例えば:

my $text = "<some tag>  stuff here> </some tag> mer mer <some tag> 'more stuff' </some tag>";

 @b =($text =~ m/s(.)uff/gsi);
 print "array B, size: ",  @b+0,  ", elements: ";
 print join (" ,", @b);
 print "\n";


 @c =($text =~ m/<some tag>(.+)<\/some tag>/g);
 print "array C, size: ",  @c+0,  ", elements: ";
 print join (", ", @c);
 print "\n"; 

出力は次のとおりです。

array B, size: 2, elements: t ,t
array C, size: 1, elements:   stuff here> </some tag> mer mer <some tag> 'more stuff' 

配列 C の出力に興味があります

size 2: , elements stuff here , 'more stuff'

なぜそれをスキップするのですか?

4

2 に答える 2

2
/<some tag>(.+?)<\/some tag>/

ネストできない場合は、トリックを行います。

于 2013-03-08T01:13:22.463 に答える
1

文字列内で最短の一致を見つけるには、貪欲でない検索を使用します(.+?)

それ以外の場合、一致する最長の文字列については、検索を貪欲 (.+)にすることができます。

よりよく理解するには、このリンクを参照してください。

したがって、正解は池上の答えになります。

于 2013-03-08T06:23:49.793 に答える