題 + 「と思う」 いちおうワークファイルに検索文字列を写して、置換を基本に同じ結果を 得られるよう、やってみました。 頭を使うことも悩むこともありませんでしたが、\(, \) をカーソルを動かし ながら探す、という最初の案に1票という結果になりました。 aaa\([0-9]\)\([0-9]\) を aaa\([0-9]\) \([0-9]\) としてしまえば、処理が楽というのは、まあ、正しかったとは思いましたが。 以下は、骨の部分だけです。 ----- testfile.txt ----- aaa\([0-9]\)\([0-9]\)\([0-9]\)\([0-9]\)zzz ------------------------ === Macrotmp by B ===; も、大変。字がいっぱい。 * M 50 ^^ "Macrotmp" ; --- tag pair num check ; \(, \) 整合性チェック #56 "\(" #m "\(" #m "AY" m=r, #56 "\)" #m "\)" #m "AY" n=r, (m==n)?? {&m("\( \) tag pair num, incorrect").} ; --- cut each ...\), for REGEX replacement below #56 "\)" #m "\)\n" #m "AY" ; \(, \) ペアを1行に一個にする ; 次のregex置換(文字列削除)のため ; --- del ...\) tail #56 "\x \\(.+$$" #m "\(" #m "AY" ; \(...\)の ...\)を削る(行末) ; 途中文字列は、行末には来ていないはず。 ; --- renumber \1, \2, \3 by looping i=1, ; \1, \2, \3 の番号振り #F "\(" #m ; :a ; #c (r)? >b ; #d #g &?("%d",i) i++, ;>a ; ここまで; --- get the original & correct 1-line form :b #56 "\n" #m "" #m "AY" ; 複数行だったのを1行に戻す &m("finished") . *
関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)
返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
- 以下のフォームから自分の投稿記事を修正・削除することができます -