[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
| |
ReplaceStr.txtを活用するスレ
8
:
ジェーン使いの名無しさん
:2011/09/25(日) 14:32:21 ID:pY42UzdE0
三年前↓に向かって、あ り が と〜
> 364 :Jane使いの名無しさん:2008/02/19(火) 00:03:02 ID:iFWTgErp0
>
> こんな感じで
>
> 一行づつ無駄に改行された文章を
>
> 改行なしにするように出来ませんか?
>
> 374 :think ◆MM0nnAOCiQ :2008/02/20(水) 00:54:51 ID:D/G3vDoJ0
> 別解として、再帰的なマッチングを利用する方法を思いつきました。
>
> ■再帰的なマッチングを利用して、空行区切りの文章を改行区切りに変換する
> 1. 先頭から末尾まで先読みして一行おきのコメントであるかチェック
> 2. 一行おきだった場合、初めの空行をマーキングした改行に変換
> 3. マーキングした改行を元の改行に戻し、後続の改行をマーキングした改行に変換
> 4. 3. を再帰的に繰り返す
> 5. 最後のマーキングした改行を元の改行に戻す
>
> ■備考
> ・ポイントは「マーキングした改行」を本来あり得ないタグにすることです。
> 例えば、<br> → <b> と置換すると、元の改行に戻す処理で元々あった <b> まで <br> に変換してしまうので、
> <hogehoge> のような元から定義されていないタグを選びます。
> ・ReplaceStrでは再帰的に置換を行うオプションが用意されていないので、実際には 3. の処理を繰り返すために
> 同じ正規表現を続けて書くことで「一つ前の正規表現で置換した内容を再帰的に置換しているかのような動作」にして対応します。
>
> 375 :think ◆MM0nnAOCiQ :2008/02/20(水) 00:57:58 ID:D/G3vDoJ0
>
>>374
をReplaceStrの形式にしたもの。
>
> // 一行空きコメントの初めの改行にマーキング
> <rx2>^(?=(?![ ]*<br>)(?:[^<]*(?!<br>)<[^>]*>)*[^<]*(?:<br>[ ]*<br>(?![ ]*<br>)(?:[^<]*(?!<br>)<[^>]*>)*[^<]*)+$)
> ((?:[^<]*(?!<br>)<[^>]*>)*[^<]*)<br>[ ]*<br>[Tab]$1<br every other line>[Tab]msg
>
> // マーキングされている <br> を元に戻し、後続の <br> にマーキング (以下、繰り返し)
> <rx2><br every other line>((?:[^<]*(?!<br>)<[^>]*>)*[^<]*)<br>[ ]*<br>[Tab]<br>$1<br every other line>[Tab]msg
> <rx2><br every other line>((?:[^<]*(?!<br>)<[^>]*>)*[^<]*)<br>[ ]*<br>[Tab]<br>$1<br every other line>[Tab]msg
> <rx2><br every other line>((?:[^<]*(?!<br>)<[^>]*>)*[^<]*)<br>[ ]*<br>[Tab]<br>$1<br every other line>[Tab]msg
>
> // 最後にマーキングされている <br> を元に戻す
> <rx2><br every other line>(?=(?![ ]*<br>)(?:[^<]*(?!<br>)<[^>]*>)*[^<]*$)[Tab]<br>[Tab]msg
>
> 2つめの正規表現で「再帰的なマッチングもどき」を行います。
> 長文に対応させるためにはここをコピペして増やせばいいので、好きなだけ増やしてください。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板