- 作成者投稿
- 2024年2月3日 1:50 am #31522Applek参加者
お世話になります。
以下のことでわかる方お願いします。
for( i = 0; i < 20; ++i )batch_list.AddReplace(“(^.*?)太郎(.*?∂)”,”$1タロウ$2″,eeFindReplaceRegExp | eeFindReplaceCase,0);このような前から順番に∂までにある太郎をタロウに置換していくとします。
この書き方でもし”太郎”がひとつもなければ、2回以降の繰り返しは計算リソースの無駄になります。
あるいは2個しかなかった場合は3回目以降無駄になります。この場合、それ以降見つからなかった時点で繰り返さないで打ち切るという書き方はどう書けばいいでしょうか?
よろしくお願いいたします。2024年2月3日 8:25 am #31525Yutaka Emuraキーマスターいつもお世話になっております。江村です。
以下のように書けば可能です。
for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) { break; } }
よろしくお願いいたします。
2024年2月3日 9:30 am #31526Applek参加者回答ありがとうございます。
for( i = 0; i < 20; ++i ){if( !batch_list.AddReplace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase,0) ) {break;}}
このように連続置換としても書けますでしょうか?
よろしくお願いいたします。2024年2月3日 9:59 am #31527Yutaka Emuraキーマスターいつもお世話になっております。江村です。
連続置換は使えません。
よろしくお願いいたします。
2024年2月3日 11:28 am #31528Applek参加者ありがとうございます。
試しましたがうまく動作しませんでした。
何が考えられますでしょうか?2024年2月3日 6:17 pm #31529Applek参加者連続置換ではないほうです。if( !document.selection.Replace
こっちのほうが動きませんでした。
よろしくお願いいたします。2024年2月4日 3:08 am #31532Yutaka Emuraキーマスターいつもお世話になっております。江村です。
試しましたがうまく動作しませんでした。
どのように動作しないのか、ご質問を明確化してください。先ほどのコードは例であり、ご自身で発展させる必要があります。
例えば、すべて置換を行いたいのであれば、
eeReplaceAll
を追加する必要があります。さらに、Onigmo を使用されたいのであれば、eeExFindRegexOnigmo
と明示された方がいいです。for( i = 0; i < 20; ++i ) { if( !document.selection.Replace("(^.*?)太郎(.*?∂)","$1タロウ$2",eeFindReplaceRegExp | eeFindReplaceCase | eeReplaceAll,eeExFindRegexOnigmo) ) { break; } }
よろしくお願いいたします。
- 作成者投稿
- このトピックに返信するにはログインしてください。