質問: ### 文字列の詳細な検索のプログラム automatorもしくはjava,jqueryで以下のような詳細な置換をかけることは可能でしょうか? 1.特定文字列から特定文字列まで選択範囲とし置換し 2.上から検索にヒットした順に置き換え文章の1行目、2行目、、、を次々入れていく。 また方法を教えてください。 ■■■■■■■■【例文】■■■■■■■■■ --------------------- #### **【文章1】** サイクロン掃除機イオンファイバーヘッド搭載電動ふとんブラシ付きモデル 型番:VC-MG910 販売日:2016年8月発売 サイクロン掃除機イオンファイバーヘッド搭載モデル 型番:VC-MG710 販売日:2016年8月発売 サイクロン掃除機カーボンヘッド搭載モデル 型番:VC-S500 販売日:2016年12月発売 サイクロン掃除機ACアダプター 型番:ac-500 販売日:2016年12月発売 #### **【検索パターン】** ●「サイクロン」から次の「モデル」までの文字列を【置き換え文字列】の1行目に置き換える ●次にヒットした「サイクロン」から次の「モデル」までの文字列を【置き換え文字列】の2行目に置き換える ●以下3、4、と置き換え文字列が無くなるまで続く #### **【置き換え文字列】** コードレスクリーナーフルスペックモデル コードレスクリーナースタンダードモデル コードレスクリーナーライトモデル コードレスクリーナー付属品モデル **■■■■■■■結果■■■■■■■■** --------------------- コードレスクリーナーフルスペックモデル 型番:VC-MG910 販売日:2016年8月発売 コードレスクリーナースタンダードモデル 型番:VC-MG710 販売日:2016年8月発売 コードレスクリーナーライトモデル 型番:VC-S500 販売日:2016年12月発売 コードレスクリーナーライト付属品 型番:ac-500 販売日:2016年12月発売 非常に分かりにくい文章で申し訳ございませんがよろしくお願いします。 2/12 追加分をコメントに記載しております。
回答: 高度というか、正規表現の先読み使えばできるかと。 ``` var repData = [ 'コードレスクリーナーフルスペックモデル ', 'コードレスクリーナースタンダードモデル ', 'コードレスクリーナーライトモデル ', 'コードレスクリーナー付属品モデル' ]; var str = `サイクロン掃除機イオンファイバーヘッド搭載電動ふとんブラシ付きモデル 型番:VC-MG910 販売日:2016年8月発売 サイクロン掃除機イオンファイバーヘッド搭載モデル 型番:VC-MG710 販売日:2016年8月発売 サイクロン掃除機カーボンヘッド搭載モデル 型番:VC-S500 販売日:2016年12月発売 サイクロン掃除機ACアダプター 型番:ac-500 販売日:2016年12月発売`; var idx = 0; var replaced = str.replace(/([^\n]+?)(?=\n型番)/g, function(a, b){ return repData[idx++]; }); result.textContent = replaced; ``` デモ