1 件の投稿を表示中 (合計 7 個)
  • 作成者
    投稿
  • #31522
    Applek
    参加者

    お世話になります。
    以下のことでわかる方お願いします。
    for( i = 0; i < 20; ++i )batch_list.AddReplace(“(^.*?)太郎(.*?∂)”,”$1タロウ$2″,eeFindReplaceRegExp | eeFindReplaceCase,0);

    このような前から順番に∂までにある太郎をタロウに置換していくとします。
    この書き方でもし”太郎”がひとつもなければ、2回以降の繰り返しは計算リソースの無駄になります。
    あるいは2個しかなかった場合は3回目以降無駄になります。この場合、それ以降見つからなかった時点で繰り返さないで打ち切るという書き方はどう書けばいいでしょうか?
    よろしくお願いいたします。

    #31525
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    以下のように書けば可能です。

    
    for( i = 0; i < 20; ++i ) {
    	if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) {
    		break;
    	}
    }
    

    よろしくお願いいたします。

    #31526
    Applek
    参加者

    回答ありがとうございます。
    for( i = 0; i < 20; ++i ){if( !batch_list.AddReplace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) {break;}}
    このように連続置換としても書けますでしょうか?
    よろしくお願いいたします。

    #31527
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    連続置換は使えません。

    よろしくお願いいたします。

    #31528
    Applek
    参加者

    ありがとうございます。
    試しましたがうまく動作しませんでした。
    何が考えられますでしょうか?

    #31529
    Applek
    参加者

    連続置換ではないほうです。if( !document.selection.Replace
    こっちのほうが動きませんでした。
    よろしくお願いいたします。

    #31532
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    試しましたがうまく動作しませんでした。

    どのように動作しないのか、ご質問を明確化してください。先ほどのコードは例であり、ご自身で発展させる必要があります。

    例えば、すべて置換を行いたいのであれば、 eeReplaceAll を追加する必要があります。さらに、Onigmo を使用されたいのであれば、 eeExFindRegexOnigmo と明示された方がいいです。

    
    for( i = 0; i < 20; ++i ) {
    	if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase | eeReplaceAll,eeExFindRegexOnigmo) ) {
    		break;
    	}
    }
    

    よろしくお願いいたします。

1 件の投稿を表示中 (合計 7 個)
  • このトピックに返信するにはログインしてください。