• 締切済み

VZ タグ付き正規表現の置換

こちらへの投稿が妥当かどうか自信がありませんが、もし御存知の方がいらっしゃったら、お知恵をお貸しいただければと。 恐らく単純な躓きなのでしょうが、ソートー悩んでいます。。。 ヒューレットパッカードの200LXでvzを使っています。 vz起動時、vwxは常駐させています。 他に使用環境の何を書かねばならないか良く分からないので、もしあったら御指摘ください。 以下のような文字列を置換しようとしてうまく行かず困っています。 ある俳優のプロフィールを自分なりに読みやすくしたいのです。 というか、まちがった一括置換で読みにくくなった(御丁寧に保存してしまった^^)ものを読みやすくしたいのです。 対象文字列(の一例) 1996年 「驚變」1997年 「求戀期」「映画ほにゃらら」 年と「の間はtabが入っています。 」と1997年の間は何も入っていません。 (以下の例文では[tab]とか[改行]とか表記します) これを 1996年[tab]「驚變」[改行] 1997年[tab]「求戀期」「映画ほにゃらら」 としたいのです。 つまり」と四桁の数字の間を改行したいのです。 で、検索文字列にこう打ち込みました。 」\([0-9][0-9][0-9][0-9]\) そして置換文字列にこう打ち込みました。 」\n\1 そうすると置換結果はこうなりました。 1996年 「驚變」n1997年 「求戀期」「映画ほにゃらら」 つまり\nが改行記号と認識されず、文字nそのものだよと受け取ったみたいです。 正規表現そのものが全て受け付けてられていない訳ではなさそうです、\1でちゃんと1997年とでてきますから。 また、以下のようにしても、結果は同じでした。 検索文字列 \(」\)\([0-9][0-9][0-9][0-9]\) 置換文字列 \1\n\2 ちなみに 検索文字列 」 置換文字列 」\n としたら、ちゃんと改行できます。 どなたかお知恵をいただけないでしょうか?

  • jikd
  • お礼率100% (2/2)

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★お試し1 ・検索文字列⇒『」19』  置換文字列⇒『」\n19』  と  検索文字列⇒『」20』  置換文字列⇒『」\n20』  の2つに分けるのはどうですか? ★お試し2 ・キーボードマクロを使う。  最初に『年』文字を検索文字としておく。  そしてファイルの一番下へ移動させておく。  (1)[CTRL]+[_]でマクロ登録開始  (2)『年』文字を↑検索する…[SHIFT]+[↑]キー  (3)1語左へ移動する…[SHIFT]+[←]キー  (4)改行を挿入する…[RETURN]キー(Enterキーなど)  (5)[ESC]キーで登録完了  (6)[ESC]キーをずっと押してマクロの連続実行をさせる。  上記の5ステップを登録して ESC キーをずっと押せばマクロが連続的に実行されます。  データが少ない場合か、1回だけならばこれで編集できます。 ・以上。参考に。 余談: ・『Vzエディタ』って『ヒューレットパッカード』の 200LX でも使えるのですか。初めて知ったよ。  『Vzエディタ』v.1.57、v1.60 が懐かしいです。 ・下の『参考URL』のどうぞ。

参考URL:
http://homepage3.nifty.com/mezala/vz/re/index.html
jikd
質問者

お礼

お返事を書くのが超遅くなってしまいました。まことに申し訳ないことをいたしました。急な長期出張がばたばたと決まり、気にはなっていたのですが、リアクション出来ずにいらいらしていました。ネット環境が劣悪なところで、連絡は電話ファックスというなかなか渋い世界でありました。。。。 いただいたお試し方法、1の方でOKでした。 有難うございます。 2のほうは、私が知らないだけかもしれませんが200LX特有のキーボードマクロは使えるのですが、DOSに下りてしまうと使えないような気がします。 やれるのかもしれませんが、やり方を知りません。 いずれにせよありがとうございました。そして申し訳ないことをしました 今後とも宜しくお願い申し上げます。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

Vzを使っていたのは前の世紀の遠い昔なのであてずっぽう100%なんですが、 」\n\1 を 」\\n\1 としたらどうなります?

jikd
質問者

お礼

お返事を書くのが超遅くなってしまいました。まことに申し訳ないことをいたしました。急な長期出張がばたばたと決まり、気にはなっていたのですが、リアクション出来ずにいらいらしていました。ネット環境が劣悪なところで、連絡は電話ファックスというなかなか渋い世界でありました。。。。 いただいたアドバイスで試してみました。 結果は 1996年 「驚變」\n1997年 「求戀期」「映画ほにゃらら」 となってしまいます。二段階に分ければOKということが分かったので、とりあえずはやれています。 前世紀の記憶を辿ってくださってありがとうございました。 レスをつけるのが超超遅くなってしまったこと、申し訳ないことをいたしました。 今後とも何卒宜しくお願い申し上げます。

関連するQ&A

  • 秀丸での正規表現を使用した置換

    いつもお世話になっております。 秀丸で正規表現を使用した置換処理を行いたいと思うのですが、どうしても正規表現の式が書けません。 どうかご教示下さい。 <置換前> ABC1 あAbCd++ ... ... ・先頭4文字は半角英数字の大文字固定 ・その後ろにタブ ・最後にかな、英数字、記号などの可変長の文字列 上記で1レコードです。 <置換後> ABC1 String 内容 あAbCd++ ... ... ・先頭4文字そのまま ・その後ろにタブを3つ+改行 ・続いて「内容」という文字列+改行 ・最後に可変長の文字列をそのまま+改行 「置換」の正規表現は以下だと思うのですが、英数字4文字と可変長文字列を別々にマッチさせる「検索」がどうしても分かりません。 \0 String\n内容\n\1\n どうかご教示下さい。 <環境> Ver.6.1.4

  • 正規表現について教えてください。

    Perlとは関係ないのですが、正規表現での置換ができるエディタで改行二つを一つにしたいです。 置換前 \n\n 置換後\n としてみたのですがうまくいきません。まちがってたら教えてください。 CRLFとか気にしないといけないのかな。

    • ベストアンサー
    • Perl
  • 正規表現置換

    はじめまして。 現在、テキストエディタで kami987koroです。(漢字、かな、英数字、半角記号、全角記号、改行、スペースを含む文字列)ありがとうございました。 という文字列を正規表現で拾いだして、置換したいと考えています。 ただ、私がその方面の知識に疎く、どう表記すればよいのか分かりません。 そこで、この分野にお詳しい方、ご教授願えませんでしょうか? よろしくお願い致します。

  • 正規表現と置換を使って書き換えたい

    HTMLのソースなどで、 …省略…width=300 border=10 cellspacing=0 cellpadding=0> …省略…width="300" border="10" cellspacing="0" cellpadding="0"> (スペースの都合で改行しています) と属性値をダブルクォートでくくるように書き換えたいのですが、検索文字列、置換文字列を正規表現を使ってどのように記述すればよいのでしょうか? よろしくお願いします。

  • 正規表現の置換で、カンマで区切られた語句を""と改行で分ける方法

    正規表現による置換についてお教えください。 Unixのコマンドで置換するときに、sed コマンドを使うと思います。 今、プログラムのソースコードの中に含まれている語句を取得するために、色々いじろうと思っています。 私が最もお聞きしたいのは、正規表現の書き方であることを、まずご理解ください。 ソースコードの中に、 string headline="語句1,語句2,・・・,語句n-1,語句n"; というように、 string headline= で始まっていて、 その後に " "(ダブルクォーテーションの組)で囲まれた部分が1箇所あり、 その部分に、カンマ(,)で区切られた語句がいくつもあるような行があったとき、 その " "の部分を、 "語句1", "語句2", ・・・ "語句n-1", "語句n" のように置換したいのです。 つまり、語句一つ一つをダブルクォーテーションで包んで、1行に語句が1つになるようにしたいのです。 厳密に言えば、stringとheadlineの間などに、タブや空白がいくつあるかわからないという問題なども考える必要があるかもしれません。 とりあえず私が考えたのは、 s/\(string headline="\)\([^,]\)+,\(";\)/\1\2",改行"\3/g です。 s/置換前の文字列のパターン/置換後の文字列のパターン/g となっています。 置換前のパターンで \( \) で囲まれている部分は、置換後のほうで、\1のように参照できます。 ■■でも、私の書いたものって、語句が繰り返し出現することに対応できていないように思われます。■■ 実際に、置換に改行を含めるには、正規表現をファイルの中に書いて、sedの-fオプションで読み込ませることになると思います。 string headline=" " という形をしていないものは、たとえ、" " の中がカンマで区切られていてもそれを分けません。

  • 正規表現による改行の置換

    Windowsで正規表現ができるテキストエディタ(NoEditer)を使っており、次のような改行で区切られた文を最後のピリオッドまでをつなげたいと思っています。例文ではX,Y,Z.の直後には改行が入っており、目的はAaaaXBbbbYCcccZ.と一文につなげることです。 [例文] AaaaX BbbbY CcccZ. 正規表現で \n[^(\.\n)] としてを空欄に置換すると2行目以降の頭が消えてしまいます。---> AaaaXbbbYcccZ.  文頭の文字が消えずつなげる方法を教えて下さい。

  • サクラエディタでの置換について

    サクラエディタを使って、置換をしたいのです。 以下のようなコードで、(1)・(2)や(5)・(6)を2行をまとめて置換したいのです。1行のみの置換だと全て置換されてしまうので困っています。 (タブ)<tr bgcolor="#ffffff">(改行)........(1) (タブ)(タブ)<td>AAAAAAA</td>(改行)........(2)            : (タブ)<tr bgcolor="#ffffff">(改行)........(3) (タブ)(タブ)<td>BBBBBBB</td>(改行)........(4)            : (タブ)<tr bgcolor="#ffffff">(改行)........(5) (タブ)(タブ)<td>AAAAAAA</td>(改行)........(6)            : (タブ)<tr bgcolor="#ffffff">(改行)........(7) (タブ)(タブ)<td>CCCCCCC</td>(改行)........(8)            :            : また、自分で以下のように置換してみました。 置換前 \t<tr bgcolor="#ffffff">\n\t\t<td>AAAAAAA</td>\n  置換後 \t<tr bgcolor="#CCFF66">\n\t\t<td>AAAAAAA</td>\n として置換したのですが、文字列が見つかりませんと表示されてしまいます。2行をまとめて検索して、置換する事って出来ないのでしょうか? どなたかご教授願います。宜しくお願い致します。

  • MS-wordで,ワイルドカードを用い,n人(1, 2, 3)を3人(1, 2, 3)に置換

    ワイルドカードを用いた置換の仕方についてお伺いします. 用いているのはword for mac 2004です. n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5) n人(1, 2, 3, 4)や、n人(2, 3, 4, 5)や、n人(3, 4, 5, 6) といったものを, 3人(1, 2, 3)や、3人(2, 3, 4)や、3人(3, 4, 5) 4人(1, 2, 3, 4)や、4人(2, 3, 4, 5)や、4人(3, 4, 5, 6) という風に,nを()内の数字の個数に一度に置換したいのですが, 検索文字列は n人(1, 2, 3)や、n人(2, 3, 4)や、n人(3, 4, 5)の場合は n人(?, ?, ?) で検索できることはわかっているのですが,置換後の文字列はどのようにすればよいでしょうか? ちなみに数字やn、カンマとその後のスペースは半角,括弧は全角です. よろしくお願いします.

  • 正規表現で改行が3個続いてたら、それを削除する書き

    検索とか置換えで、正規表現で、改行が3回続いていたら、それを削除する書き方ってあるでしょうか? 試して見てるのですが、改行が全部消えてしまい、うまく思い通りにいきません。 検索:^\n 置換: とかだと、改行が全部なくなってしまいます。 ^\n\n\n$ だと、ヒットしません。 改行が続いていて、それを3行だけ取り除くなんていうのは、できないもんでしょうか。 文章の中にあります。 行頭に半角空白,改行と続くのもありますが、それはヒットしないように。      

  • 正規表現についてお教え下さい

    正規表現についてお教え下さい。 )以外の全ての文字列(改行・Tab・空白等含む)の1回以上の繰返しという記述は正規表現ではどのような記述になるでしょうか? NoEditorで下記のような条件でgrepしようとしたのですがうまくいきません。 [[^[^\)]] \t\n\r\f]+ 具体的には下記のような5行があった場合、以下のような条件で1、2、3行目を抽出できるということを想定しています。 条件:AAA )以外の全ての文字列の1回以上の繰返し \) ※現状の条件の記述はAAA[[^[^\)]] \t\n\r\f]+\) 1行目 AAAあ(aaa) 2行目 AAA あ(aaa) 3行目 AAA あ 4行目 (aaa) 5行目 AAA)

専門家に質問してみよう