アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記はc#正規表現での文字列分割の例です。
-------------------------------------------------
using System;
using System.Text.RegularExpressions;

class MyApp {
static void Main() {
Regex regex = new Regex("<[^>]*>");
string[] parts = regex.Split ("<b>Every</b>good<h3>boy</h3>does<b>fine</b>");
foreach(string part in parts)
Console.WriteLine(part);
}
}
-------------------------------------------------
上記で正しく分割できるのですが、[^>]の意味がどうしても理解できません。">以外"という意味ですね?どうして必要なのでしょう?
"<[\\w,/]*>"の場合OKですが、"<[*]>"の場合は区切り文字が">"になってしまいます。
どなたか説明をお願い致します。数ヶ月悩んでいます。

A 回答 (1件)

例えば、


"<b>Every</b>good<h3>boy</h3>does<b>fine</b>"
を対象として、
正規表現が
"<.*>" の場合
なるべく長く一致しようとするので(最長一致)
<b>Every</b>good<h3>boy</h3>does<b>fine</b>
が一致してしまいます(最後の'>'まで)
[^>]* は、'>'でない連続した文字なので
<b> がマッチします。
    • good
    • 0
この回答へのお礼

ありがとうございました。
最長一致と最短一致がよく分かっていませんでした。
>の前で止めるための、^>なのですね。これがないと最後まで探してしまうのですね。

助かりました。今後ともよろしくお願いします。

お礼日時:2006/03/02 06:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!