一括表示

− 野ざらし言 −

[5] アーパサンドについて質問

あかべこ 2005/03/09(Wed) 16:01
<t-hayasi@rr.iij4u.or.jp>
正規表現について質問
作成文書
1,あかべこ愛用VZの秀作マクロを2つ御紹介
1,CALC.DEF 田野村忠温 文書内計算及びその経過・結果記入
2,SED.DEF 煩悩百八  半角→←全角等文字・数字の置換

作成文書の1行目の数字「1」を括弧で囲んで
(1),あかべこ---にするにはSEDでS/^[0-9]/(&)/とするそう
です。

 私は1行目の数字「1」を括弧に囲まず、そのままにする。
作成文書の2行目の数字「1」を括弧で囲んで
(1),CALC.DEF-----
作成文書の3行目の数字「2」を括弧で囲んで
(2),SED.DEF-----
としたいのです。どうしたら、出来るでしょうか?
よろしく、ご教授をお願いします。
           あかべこ

[6] Re: アーパサンドについて質問

あかべこ 2005/03/09(Wed) 16:13
[5]へのコメント <t-hayasi@rr.iij4u.or.jp>
> 正規表現について質問
>           作成文書
> 1,あかべこ愛用VZの秀作マクロを2つ御紹介
>   1,CALC.DEF  田野村忠温 文書内計算及びその経過・結果記入
>   2,SED.DEF  煩悩百八  半角→←全角等文字・数字の置換
   あかべこ 
と書いたつもりが、作成文書2行目、三行目のスペースが消えて
左寄せに成ってしまうのは何故ですか?

[7] Re^2: アーパサンドについて質問

あかべこ 2005/03/09(Wed) 17:30
[6]へのコメント <t-hayasi@rr.iij4u.or.jp>
>  正規表現について質問
>            作成文書
>  1,あかべこ愛用VZの秀作マクロを2つ御紹介
>    1,CALC.DEF  田野村忠温 文書内計算及びその経過・結果記入
>    2,SED.DEF  煩悩百八  半角→←全角等文字・数字の置換

   /^[  ]/S/[0-9]/(&)/ 左の[  ]内は半角又は全角スペース 
とするのも、かなりの解決策ですが、左端にない数字(章、節、
項に関係ない数字)までもが括弧で囲まれてしまうので、困りま
す。

[9] アンパーサンド?必須ですか?

めざら 2005/03/09(Wed) 21:23
[7]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
s/^\(\s+\)\([0-9]+\),\([A-Z]+\.DEF\)/\1(\2),\3/g
…ってくらいしつこくやれば間違いはないかと。

[8] Re^2: アーパサンドについて質問

めざら 2005/03/09(Wed) 21:12
[6]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
> 作成文書2行目、三行目のスペースが消えて
> 左寄せに成ってしまうのは何故ですか?
HTML  は連続したスペースや改行などの空白類をまとめるという基本的仕様が
あります。したがって,行頭のインデントなどを再現するには,「整形済みテ
キスト」を示す要素を使用する必要があります。ここでは「図表モード」とな
っている書き込み形式がそれです。この掲示板はマクロコードなどを書き込む
機会が多いと考えて,図表モードをデフォルトにしています。ですから,通常
は何も考えずに,図表モードのラジオボタンが有効の状態で書き込んで下さい。

[10] テキスト整形の基本

めざら 2005/03/09(Wed) 22:11
[5]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
正規表現による置換に限らず,テキスト整形処理を行うときは,まず対象のテ
キストをじっくり観察するところから始まると思います。

1,あかべこ
1,CALC.DEF 田野村忠温
2,SED.DEF 煩悩百八

このリストは,字下げの有る無しにかかわらず,まったく違う構造をしていま
すね。そのパターンがわかれば,このリストのそれぞれの行の構造は,

1,ハンドルネーム
1,FILE.NAM ハンドルネーム
2,FILE.NAM ハンドルネーム

…となっています。

マクロ名の入っている方を正規表現でマッチさせるには,
[0-9],[A-Z]+\.[A-Z][A-Z][A-Z]\s[ぁ-んァ-ヶ亜-熙]+
…くらいのことをやれば十分だと思います。

マクロ名の無い方は…,簡単ですね。

[13] Re: テキスト整形の基本

あかべこ 2005/03/10(Thu) 22:31
[10]へのコメント
めざら さん
こん晩は
毎度お騒がせのあかべこです。

 ボタンの掛け違い陳謝! m(__)

あかべことめざらさん間における
「問い」と「答え」について、ボタンの掛け
違いが生じてしまいました。
この現象を生じさせた責任はあかべこに
ありました。陳謝!m(__)mします。
 まずは、あかべこの「問い」の文章が
曖昧で間違いを含んでいたです。
 質問するには、質問の意図を明確に示さ
なければ答える側のめざらさんが困ってしまい
ます。
 あかべこの質問の意図を示します。
めざらさんの「正規表現入門」に題材として
採用されている仕様書の章、説、項の問題が
有ります。あかべこはこれをイメージして
いました。専門書の単行本とか、ページ数の
多い公式文書などでは、文章を章、説、項で
分類・整理しています。
 しかし、1ぺーじから20、30ページ
くらいの文章では、章、説、項という分類
は大袈裟です。通常は次ぎのような
簡略な文章区分を使っています。
1、
 (1)、
   1)
   2)
 (2)、
   1)
   2)
   3)
2、
 (1)、
    1)
    2)
 (2)、
    1)
    2)
    3)
こんな文章区分をします。
 つまり、字下げをして、数字を両括弧( )
や、片括弧 )などで括るわけです。
 ところが、文章作成の過程では、省力化
のために、取りあえず文章区分の数字は字下げだけ
して、数字だけ書いて済ませ、後に一括して,
字下げした数字をまとめて括弧( )又は)で括る
作業をした方が文章作成の能率が上がります。
  ことに、前に 御紹介した煩悩百八さんの
sed.defを使うと、コマンドラインに降りなくとも、
VZの文章作成過程で、一括して「文字置換」が
できるので、極楽環境です。 
 あかべこのこのような目的から現在の一応の
解決策は文章区分の数字は全角数字を使い

 /^[  ][^    ]/s/[0-9]+/(&)/

というスクリプト(Fkakko1.sed)を
作ってみました。これをsed.defと一緒に
使うのです。
 FはFigureで数字の頭文字です。数字を
両括弧(  )で囲むスクリプトです。

数字を片括弧 )で括るスクリプト
 [Fkakko2.sed]

 /^[  ][  ]/s/[0-9]+/&)/
も作ってみました。

Fkakko1.sedとFkakko2.sedを使うと
あかべこの目的を達成できます。
sed.defでは、一度に2つのSEDスクリプト
を実行できます。

 こういう質問の意図ですと、
アンパサンドはは必須と思います。
めざらさんご迷惑をかけました。
何か良いアイデアあればこれに懲りずにお教え下さ
い。
               あかべこ

[15] Re^2: テキスト整形の基本

めざら 2005/03/10(Thu) 22:36
[13]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
あんまりお気になさらず自由に投稿してくださいませ。

わたしは,どちらかと言うと,最初から番号付けするのが嫌いで,階層に応じ
た記号を標題に付けておき,最後に一括で番号振りをします。書いているうち
に前後を入れ替えるなどして番号付けが狂ってくるからです。

そうすることで,通常の公文書も,HTML にする予定の手順書なども, あるい
は雑文も,同じ書式で書きはじめ,最後のマークアップ仕様を変えるだけで,
まったく同じ感覚で書くことができます。まぁ,単にズボラなだけですが…。

[21] 「章、節、項」問題を再説

あかべこ 2005/03/26(Sat) 14:28
[15]へのコメント <t-hayashi @rr.iij4u.or.jp>
めざらサン、お元気ですか。

くどいようですが、「章、節、項」問題を再説します。

文章が章、節、項という区分で、整理されているとしましょう。

[私がやってみたいこと]
下記の[文章1]、のうち節の出だしを1字分、項の出だしを2字分、
それぞれ下げて、[文章2]のようにしたい。
章の出だしは字下げをしません。

[文章1]

1、主張 
#1、準備書面1
#2、同2
#3、証拠説明書
2、証拠、
#1、前回提出分
##1、乙1号証 判例
##2、乙2号証 カルテ
##3、乙3号証 同翻訳
#2、今回提出分
##1、乙4号証
##2、乙5号証

[文章2]

1、主張 
 (1)、準備書面1
 (2)、同2
 (3)、証拠説明書
2、証拠、
 (1)、前回提出分
    1)、乙1号証 判例
    2)、乙2号証 カルテ
    3)、乙3号証 同翻訳
 (2)、今回提出分
    1)、乙4号証
    2)、乙5号証

[スクリプト]
SEDを使って、スクリプトを前回書きましたが、もっと整理して
下記の形にしてみました。

/^#[^##]/{
  s/[0-9]+/(&)/
  s/#/ /
}
/^##/{
  s/[0-9]+/  &)/
  s/##/  /
}


易しい、正規表現とSEDの利用法で、興味のある人には、役に立つ
かもしれません。軽い頭の体操か?

               あかべこ

[22] Re: 「章、節、項」問題を再説

めざら 2005/03/27(Sun) 17:30
[21]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
あかべこさん, こんにちは。

わたしは正規表現は vwx から入ったので, & の参照って使ったことがありま
せんでした。 参照するときはいつも括弧と \ 数字を使った後方参照で,今回
初めて & の便利さを教わったようなものです。どうもありがとうございます。

さて,記号の識別子を使った階層表現を置換するときの注意すべきことで思い
出すのが,下の階層からやらないと失敗するという教訓です。特に同じ記号の
数で階層を表現した場合は,下…つまり記号の数の多い方…からやらないと下
が上を兼ねてしまうからです。

あかべこさんのスクリプトは,逆に上からやっているので,なるほど〜と感心
したところです。ただ,
> /^#[^##]/{
…の排他ブラケットの中は文字リストですから,「##」と2個重ねる必要は
ないと思います。また,正規表現をより厳密にするためには,行頭の#と2バ
イトの数字の繰り返しが節なら,
/^#[0-9]+/
という条件で処理すれば確実なのではないでしょうか。

/^#/{
    s/^##\([0-9]+\)/    \1)/
    s/^#\([0-9]+\)/(\1)/
}

これで同じ事が出来るのではないでしょうか。
& を使えないのがちょっと残念ですけど。(^^;

[23] Re^2: 「章、節、項」問題を再説

あかべこ 2005/03/27(Sun) 22:51
[22]へのコメント <t-hayashi @rr.iij4u.or.jp>
 めざらサン、早速 ご返事有り難うございます。
「章、節、項」問題ですが、人により様々な対応がある
ものでね。両者の対応は対照的だと思います。
 めざら流のスクリプトはスッキリしてますね。
早速試してみました。勿論OKです。
 めざらさんお私のスクリプトに対する「直し」の部分も、
いちいち、ご尤もと思い、下記のように修正して試して
みました。OKです。

/^#[0-9]+/{
  s/[0-9]+/(&)/
  s/#/ /
}
/^##/{
  s/[0-9]+/  &)/
  s/##/  /
}

ではまた。
               あかべこ

↑ このページの先頭