Regular Expression(正規表現) Part13©2ch.net at TECH
Regular Expression(正規表現) Part13©2ch.net - 暇つぶし2ch10:デフォルトの名無しさん
14/11/06 09:13:27.45 R+FFieFi
●Regular Expressionの使用環境
MKEditor or 秀丸Editor

●検索か置換か?
置換

●説明
HTMLファイル(XHTML1.0 Traditional)中の下記条件にあうコメントを画像リンクに変換したい

以下、24、とある部分は最大三桁までの正の整数(1~350までの数字)で不連続、半角と読み替えてください。

なお数字が3桁に満たない場合はURL部分の場合は0で埋める必要があります。
ex)24->024
alt=""のところはalt="1-24"でもalt="1-024"でもalt="24"でも構いません。
お願いします

●対象データ
<p><!-- 1-24 --></p>

が、HTMLファイル中に多数点在
●希望する結果
<p><a href="URLリンク(picasaweb.google.com)
<img src="URLリンク(lh3.googleusercontent.com)
height="640" width="480" alt="1-24" /></a></p>
*2chの一行あたりの文字数制限の関係で改行ありますが、本当は一切入りません

11:デフォルトの名無しさん
14/11/06 10:28:08.46 lWF4wSu7
>>10
補足
alt=""の置換は出来ればいいや程度で本命はURL文字列ないの置換です。

0埋めが無理な場合は1桁、2桁、3桁の場合で複数回に分けても構いません。

12:デフォルトの名無しさん
14/11/06 13:27:21.94 M7g3dHxa
…?

<!-- 1-24 -->
からURLをどうやって導出するんだ?

13:デフォルトの名無しさん
14/11/06 13:52:01.65 M7g3dHxa
URLの末尾のみが変動すると仮定するなら、安直なのは

var base = '<p><a href="URLリンク(picasaweb.google.com)(略)"><img src="URLリンク(lh3.googleusercontent.com)(略)_[HAGE].JPG" height="640" width="480" alt="$1" /></a></p>';

console.info("<p><!-- 1-1 --></p>".replace(/<p><!-- (\w+-(\d{1})) --><\/p>/, base.replace('[HAGE]', '00$2')));
console.info("<p><!-- 1-22 --></p>".replace(/<p><!-- (\w+-(\d{2})) --><\/p>/, base.replace('[HAGE]', '0$2')));
console.info("<p><!-- 1-333 --></p>".replace(/<p><!-- (\w+-(\d{3})) --><\/p>/, base.replace('[HAGE]', '$2')));

禿丸は持ってないのでJSなのは許せ

14:デフォルトの名無しさん
14/11/06 16:21:39.82 VPCdIppO
前スレでこの手法で置換してた人がいたね。

1-24

1-0000024

1-\d*(\d{3})(?!\d)

1-$1

15:デフォルトの名無しさん
14/11/06 21:18:29.51 R1OkTjAz
>>10
MKEditorだと正規表現はかなり貧弱な模様なので、マクロかスクリプトでやるべきだよ
例として WSH(JScript)の場合(c:\test.js)
MKEditorのメニュー - ツール - コマンドに、
 コマンドライン: c:\test.js
 パラメータ: %FILENAME%
として登録し実行
ただし、ファイルが外部で書き替わってもMKEditorは認識してくれないので
既存のファイルのみ可能でコマンド実行後、メニュー - ファイル -読み直すことが必要

16:デフォルトの名無しさん
14/11/06 21:18:55.40 R1OkTjAz
var base = '<p><a href="URLリンク(picasaweb.google.com)'
+'<img src="URLリンク(lh3.googleusercontent.com)';
var opt1 = '\.JPG" height="640" width="480" ALT="';
var opt2 = '" /></a></p>';
var re=/<p><!--\s+(\d-(\d{1,3}))\s+--><\/p>/g;

try {repComment(WScript.arguments);} catch(e){WScript.Echo(e.number+" :"+e.message);}

function repComment(arg) {
var n=0,rfile,wfile;
var fs = new ActiveXObject("Scripting.FileSystemObject");
if(arg.length<1) throw new Error(10001,'パラメタ1にファイルパスを指定してください');
if(!fs.FileExists(arg(0))) throw new Error(10002,'指定ファイルがありません('+arg(0)+')');
rfile=fs.OpenTextFile(arg(0),1,true,0);
data=rfile.ReadAll();
data=data.replace(re,function($0,$1,$2){n++;return(base+('00'+$2).slice(-3)+opt1+$1+opt2)});
rfile.Close();
wfile=fs.OpenTextFile(arg(0),2,true,0);
wfile.Write(data);
wfile.Close();
fs = null;
WScript.Echo(n+'個の置換終了');
}

17:デフォルトの名無しさん
14/11/07 00:10:01.81 Ac/zCtPZ
皆様ありがとうございます。
>>10
です。
PicasaのURLをその後しばらく眺めていたところ、末尾以外にも変動するところが複数あり、しかも規則性なし、みたいで凄まじく脱力しております。おのれ、Googleめ。

せっかく多数の解決案をお示し頂きましたのに、私の調査不足でこんなことになりすみませんでした。

が、他に、正規表現で対処出来そうな物があるので、頂いた案を参考に自力で出来るように頑張ります。

MKEditorが複雑な置換に向かないということもご指摘ありがとうございます。

まことに申し訳ありませんでした。

18:デフォルトの名無しさん
14/11/07 02:31:20.76 LKxMdqoj
>>9
WSH/JScriptのマクロなどで全文を取得→JScriptのRegExpとreplaceで処理→本文に反映、という手段は一応ある。
こういうのは何処らへんまでテンプレで説明するべきなんだろうなぁ…
質問(問題解決法の問い合わせ)に対する回答としては十分有効なんだが、テンプレ化すべきかと言われると悩む。

19:デフォルトの名無しさん
14/11/07 11:43:10.76 tBFEa1p7
>>14みたいなテクもね。こういうノウハウをどこかに蓄積しといて
回答するときに「ココ見て」で済むようになると理想的だね。

20:デフォルトの名無しさん
14/11/09 12:14:22.91 YGc4Q6QV
●Regular Expressionの使用環境
秀丸Editor

●検索か置換か?
置換

●説明
HTMLファイルの<div>の中にある<br />を半角スペースに置換したい

●対象データ
<html><body>hoge<br />hoge<br />
<div>AAA<br />BBB<br />CCC</div><br />
hoge<br />hoge<br />
<div>DDD<br />EEE<br />FFF</div>
</body></html>

●希望する結果
<html><body>hoge<br />hoge<br />
<div>AAA BBB CCC</div><br />
hoge<br />hoge<br />
<div>DDD EEE FFF</div>
</body></html>

21:デフォルトの名無しさん
14/11/10 00:28:51.99 FEGsNsu6
秀丸の仕様を調べようとしたらマニュアルが有料だった。
\Gが使えれば一行で書けるけど果たして・・

22:デフォルトの名無しさん
14/11/10 01:08:32.85 qr2IepUu
>>21
ググってみたところhmJre.dllには無さそうだけど
URLリンク(www.shuiren.org)
URLリンク(hidemaruo.mydns.jp:81)

bregonig.dllを使うこともできるようだから何とかなるだろう
URLリンク(homepage3.nifty.com)
 2. 動作環境
 秀丸エディタ Ver7.00 + BRegIf.DLL v0,0,2,2

23:デフォルトの名無しさん
14/11/10 01:35:58.09 aSJ0dFtw
bbq

24:デフォルトの名無しさん
14/11/10 14:59:48.59 FEGsNsu6
>>22
調べてくれてありがとう。鬼車系が使えるなら余裕だ。

>>6
テンプレのURLを修正

鬼雲
URLリンク(github.com)

25:デフォルトの名無しさん
14/11/11 01:47:12.80 vVlDZA0+
>>6
鬼雲: 鬼車にない新機能
URLリンク(github.com)

26:デフォルトの名無しさん
14/11/11 16:32:51.30 OuKhhQWg
お願いします
.?l.?i.?b.?e.?r.?t.?y.?a.?r.?t.?w.?o.?r.?x.?\.?.?c.?o.?m.?/
なんてどうかと思ったけど凄いアホみたいだし、よく見たらドメインしょっちゅう変えてるみたいだし

●Regular Expressionの使用環境
2chMate
●検索か置換か?
検索
●説明
業者レスを消したい
●対象データ
例)
スレリンク(ascii2d板:200番)
スレリンク(ascii2d板:652番)
スレリンク(ascii2d板:645番)

スレリンク(ascii2d板:576番)
576 名無したん(;´Д`)ハァハァ sage 2014/11/11(火) 16:17:23.41 ID:EYXdTvKd
こんな俺でも気づいたら出来た。

もう寂しくないね

一足早い、自分への冬のボーナスだな

libertyartw☆orx.c☆om/spggo5/1111.jpg

☆ヌキ

27:デフォルトの名無しさん
14/11/11 17:08:07.86 +nD4yl+9


28:デフォルトの名無しさん
14/11/11 18:35:52.91 9wYSIIRx
[a-z.]*[☆骨][a-z.]*

☆や骨だけでもNGになってしまうが
少々の誤爆ぐらいなんでもないだろ

29:デフォルトの名無しさん
14/11/11 18:38:46.86 9wYSIIRx
「☆取って」とか「☆ヌキ」とかに注目した方がバリエーション少ないかもしれんな

30:デフォルトの名無しさん
14/11/11 19:45:00.54 2mNocMnH
>>27
ちょっと誤爆が怖いです
>>28
ありがとうございます。*を+にして様子見ます


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch