正規表現道場 Part2 (393レス)
前次1-
抽出解除 レス栞

104
(1): 2014/01/30(木)13:46 ID:??? AAS
修正乙の後でアレなんだけど、実際に動かしてみたらだいぶおかしいから手直ししてみたよ、と。

while ($html =~ /
<(NOBR|CODE|B|PRE|FONT)\b

(?=
(
(?:(?!<\/\1>).)*?
(?:<\1\b|$)
)
)
/sixg

) {
print "<".$1.$2, "\n";
}

------------- perl.htm -------------
<b><font><pre><b>aaa
------------- perl.htm -------------

*? はなるべく使いたくないなぁ・・ [^<]*+ を使って最適化したいw
105
(1): 2014/01/31(金)02:30 ID:??? AAS
>>103
(*VERB:ARG) ってのは知らなかったなぁ.
今回のケースだと(*PRUNE)は(?>pattern)で置き換えができると思うが,
マニュアルの 「(*PRUNE) は (?>pattern) 単独では表現できないケースを扱うために使えます。」ってのがどういうケースなのか想像できん.

>>104
修正ありがと.
元のやつだと後ろを吸い込んじゃうからマッチ位置が先に進んでしまう.
そうならないように先読みを使うと,先読み部分は後方参照に含まれなくなるから,先読みの中で改めて補足が必要って感じだね.
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.630s*