正規表現で、下記するような複数の<ul>から</ul>に一度にマッチさせるには、

どのように記述したらよいでしょうか?
※複数の<ul>~</ul>があり、リスト内容はそれぞれ違います。


<ul>
<li>test</li>
<li>test2</li>
</ul>

<ul>
<li>test03</li>
<li>test80</li>
</ul>

<ul>
~以下複数のulがあるとする。

回答の条件
  • 1人2回まで
  • 登録:2008/11/30 17:01:52
  • 終了:2008/12/01 00:01:47

ベストアンサー

id:goodvn No.3

goodvn回答回数228ベストアンサー獲得回数182008/11/30 19:21:57

ポイント52pt

Emeditor の正規表現を見てみました

http://jp.emeditor.com/help/howto/search/search_regexp_syntax.ht...

<ul>.+?<\/ul>

とした上で,"正規表現「.」が改行文字に一致することができる" のチェックボックスを入れてはどうでしょうか

id:tetlis

できました。

"正規表現「.」が改行文字に一致することができる" のチェックボックスというのが会ったんですね。

ありがとうございました。

2008/12/01 00:00:15

その他の回答(2件)

id:goodvn No.1

goodvn回答回数228ベストアンサー獲得回数182008/11/30 17:55:00

ポイント18pt

Perl の正規表現で書きます

/.*?(<ul>.+?<\/ul>)/s

これで,$1 に <ul>~</ul> が入ります

最初の,.*? は,</ul>~<ul> のノイズを除くもの

続いて,<ul>から始まり,</ul>で終わる最短の文字列(.+?),そして短行として扱う s オプションをつけています

id:tetlis

うまく行きません。

「Emeditor」というテキストエディタで実行しています。

環境を書いておらず申し訳ありません。

2008/11/30 18:43:10
id:van-dine No.2

van-dine回答回数108ベストアンサー獲得回数112008/11/30 18:34:57

ポイント10pt

最短マッチが使える場合は(perl5など)は

<ul>.*?</ul>

使えない場合(JavaScript)は

<ul>(?:(?!</ul>).{5}|.{1,4})*</ul>

です。特に、使えない場合の文の

(?!</ul>).{5}

の構文は、「</ul>にマッチしない任意の5文字」の意味で、

(?<!)が使えない場合に重宝します。

id:tetlis

うまく行きません。

「Emeditor」というテキストエディタで実行しています。

環境を書いておらず申し訳ありません。

2008/11/30 18:43:12
id:goodvn No.3

goodvn回答回数228ベストアンサー獲得回数182008/11/30 19:21:57ここでベストアンサー

ポイント52pt

Emeditor の正規表現を見てみました

http://jp.emeditor.com/help/howto/search/search_regexp_syntax.ht...

<ul>.+?<\/ul>

とした上で,"正規表現「.」が改行文字に一致することができる" のチェックボックスを入れてはどうでしょうか

id:tetlis

できました。

"正規表現「.」が改行文字に一致することができる" のチェックボックスというのが会ったんですね。

ありがとうございました。

2008/12/01 00:00:15

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません