単語の前後にスペースNo.08998
og さん 01/06/12 14:16
 
ogと言います。
半角英数字(単語)の前後に半角スペースを挿入するマクロって
ないでしょうか?いろいろ探してみたのですが、探し当てる事が
できませんでした。

[ ]
RE:08998 単語の前後にスペースNo.09005
ENCODINGSHIFTJIS さん 01/06/12 16:16
 
>半角英数字(単語)の前後に半角スペースを挿入するマクロって

// WaOubnSP.mac
// 和欧文語間の設定
$oobunM="[0-9A-Za-z]+";
$wabunM="[、-熙]+"; // 調べる気力無しで適当
//
replaceallfast $oobunM+"\\f"+$wabunM,"\\0 \\1",regular;
replaceallfast $wabunM+"\\f"+$oobunM,"\\0 \\1",regular;
//    範囲は全体   単純な形では.
// jjjjかか かkkkk kkk kkk rr rmmmmggg99




[ ]
RE:08998 単語の前後にスペースNo.09006
yamasan さん 01/06/12 16:32
 
yamasanです。こんにちは。
外しているかもしれませんが、

 | 半角英数字(単語)の前後に半角スペースを挿入するマクロって
 | ないでしょうか?いろいろ探してみたのですが、探し当てる事が
 | できませんでした。

半角英数字(単語)を検索できるのなら、
置換で、検索結果・\0の前後にスペースを入れると良いのでは、ないですか?
マクロでなくて、置換でも可能な気がします。

例:
検索⇒"[0-9A-Za-z]+"
置換⇒" \0 "

で可能な気がします。
私の場合は、ちょっと試した限りでは、出来ている気もするんですが。
こんなのでは、ダメかもしれないですね。

拡張子の前にも、スペースが空いてしまうと、
ファイルじゃなくなりますものね。
でも、かなり置換できるような気がしてなりません。失礼しました。

[ ]
RE:09006 単語の前後にスペースNo.09008
ENCODINGSHIFTJIS さん 01/06/12 17:08
 
>半角英数字(単語)を検索できるのなら、
>置換で、検索結果・\0の前後にスペースを入れると良いのでは、ないですか?

2回以上、処理を重ねた時違いませんか、あるいは
処理済みのテキストと未処理のが混在している時

[ ]
RE:09008 単語の前後にスペースNo.09010
yamasan さん 01/06/12 17:20
 
yamasanです。

 | 2回以上、処理を重ねた時違いませんか、あるいは
 | 処理済みのテキストと未処理のが混在している時

なるほど、そういうことですね。
そこまで確認せずに、申し訳ありませんでした。
やはり、簡単では、無かったようです。失礼しました。

[ ]
RE:09010 単語の前後にスペースNo.09012
ENCODINGSHIFTJIS さん 01/06/12 17:40
 
処理すべき対象と、それ以外が混在してまぎらわしいのが
ベタテキスト処理のイヤらしい点です。 ですから、DBやXMLもあるのです。


[ ]
RE:09006 単語の前後にスペースNo.09018
える さん 01/06/12 20:52
 
>yamasanです。こんにちは。
>検索⇒"[0-9A-Za-z]+"
>置換⇒" \0 "
>で可能な気がします。

" *\f[0-9A-Za-z_]+\f *" を " \1 " にすると

"あaあ" "あ aあ" "あa あ" "あ a あ" "あ  aあ"

などがすべて "あ a あ" になるかと思います。
# 最長一致なので

複数のスペースを意図的に入れてある場合には * を ? に変更すればいいですね。

[ ]
RE:09018 単語の前後にスペースNo.09019
TAKA さん 01/06/12 21:29
 
TAKA です。

>" *\f[0-9A-Za-z_]+\f *" を " \1 " にすると
>
>"あaあ" "あ aあ" "あa あ" "あ a あ" "あ  aあ"
>
>などがすべて "あ a あ" になるかと思います。

「a a a」が「 a  a  a 」に置換されてスペースが2つ入ってしま
いますね。
私も、正規表現一発で出来そうな気がするのですが、無理なのかな?
ちょっと、思いつきませんでした。

[ ]
RE:09005 単語の前後にスペースNo.09020
TAKA さん 01/06/12 21:50
 
TAKA です。

>$wabunM="[、-熙]+"; // 調べる気力無しで適当

「熙」ではなくて「K」が良いと思います。

[ ]
RE:09019 単語の前後にスペースNo.09021
TAKA さん 01/06/12 21:52
 
TAKA です。

>私も、正規表現一発で出来そうな気がするのですが、無理なのかな?
>ちょっと、思いつきませんでした。

// 強引に単語の前後をスペース1つにするマクロ(ここから)
    gofileend;
    replaceup " *\\f[0-9A-Za-z_]+\\f *", " \\1 ", regular;
    while( result )
    {
        findup;
    }
    endmacro;
// 強引に単語の前後をスペース1つにするマクロ(ここまで)

は、ダサいなー。

[ ]
RE:09018 単語の前後にスペースNo.09027
きいろいまふらあ さん 01/06/13 01:19
 
>" *\f[0-9A-Za-z_]+\f *" を " \1 " にすると
>
>"あaあ" "あ aあ" "あa あ" "あ a あ" "あ  aあ"
>
>などがすべて "あ a あ" になるかと思います。

同じ事考えていたのですが、行頭・行末にもスペースが入ってしまうなあと思っ
て躊躇してました。あとから消せばいいだけかもしれませんけど、意図的に入れ
たスペースなんかのことまで考えると ENCODINGSHIFTJIS さん的なアプローチが
よいんだろうなぁと思って傍観していたところです。(^^;

意図のよくわからんコメント、失礼しました。

[ ]
RE:09018 単語の前後にスペースNo.09033
yamasan さん 01/06/13 09:38
 
yamasanです。おはようございます。

 | " *\f[0-9A-Za-z_]+\f *" を " \1 " にすると
・・・・
 | 複数のスペースを意図的に入れてある場合には * を ? に変更すればいいですね。

私の場合、まだ、\f とか \1 がまだ上手く使えませんが、
色んな例が検索できるようになると、ほんとに、編集が楽になりますね。
また、お教えください。

[ ]
RE:09019 単語の前後にスペースNo.09034
える さん 01/06/13 09:59
 
>TAKA です。
>>" *\f[0-9A-Za-z_]+\f *" を " \1 " にすると
>>"あaあ" "あ aあ" "あa あ" "あ a あ" "あ  aあ"
>>などがすべて "あ a あ" になるかと思います。
>「a a a」が「 a  a  a 」に置換されてスペースが2つ入ってしま
>いますね。

あ、置換後の内容はスキップされちゃうんでしたね。
この場合、"a a a" の処理後の状態は " aaa " が正解でしょうか?
" a a a " でいいなら、連続する ab 列を繋げばいいのかな?

" *\f[0-9A-Za-z_]+( +[0-9A-Za-z_]+)*\f *" ですかね?

スペースの保持規則が英数の内側と外側で変わってしまうので
" ?\f[0-9A-Za-z_]+( +[0-9A-Za-z_]+)*\f ?" としたほうがいいかもしれません。

なぜか "a" にマッチしない... () の後ろの * が + で判定されている気がする。

そして "a a a" に対して置換をかけると "a a a" 全体にマッチするので、この時 \
1 は "a a a" ですよね?
でも " \1 " に置換すると " a a " になってしまう。
" a a a " と置換したときは同様に全体にマッチしてちゃんと " a a a " のままな
んだけどなぁ。

[ ]
RE:09034 単語の前後にスペースNo.09037
TAKA さん 01/06/13 12:29
 
TAKA です。

>あ、置換後の内容はスキップされちゃうんでしたね。
>この場合、"a a a" の処理後の状態は " aaa " が正解でしょうか?
>" a a a " でいいなら、連続する ab 列を繋げばいいのかな?

置換後は、" a a a "が希望だと思います。


>" *\f[0-9A-Za-z_]+( +[0-9A-Za-z_]+)*\f *" ですかね?
>
>スペースの保持規則が英数の内側と外側で変わってしまうので
>" ?\f[0-9A-Za-z_]+( +[0-9A-Za-z_]+)*\f ?" としたほうがいいかもしれません。

むむむっ、私の頭ではすぐには理解できそうにありません。
やはり、正規表現は奥が深いですね。

[ ]
RE:09033 単語の前後にスペースNo.09052
og さん 01/06/14 11:35
 
ogです。皆さんありがとうございます。

ENCODINGSHIFTJISさんに書いていただきましたマクロ
を使って実現する事ができました。

ありがとうございました。

// WaOubnSP.mac
// 和欧文語間の設定
$oobunM="[0-9A-Za-z]+";
$wabunM="[、-熙]+"; // 調べる気力無しで適当
//
replaceallfast $oobunM+"\\f"+$wabunM,"\\0 \\1",regular;
replaceallfast $wabunM+"\\f"+$oobunM,"\\0 \\1",regular;
//    範囲は全体   単純な形では.
// jjjjかか かkkkk kkk kkk rr rmmmmggg99
 



----------------------------------------------------------------------------
----

[ ]