過去の桐井戸端BBS (桐ver.8) |
15415 | あいまいな置換をしたい | かず | 2002/03/10-15:17 |
20年近く使ってきたのに、最近になって真剣に桐を使い始めました。 初歩的なことなのかもしれませんが、一通り調べた結果そうした例がなかったので、質問します。 検索ではワイルドカードを使用する部分検索などがありますが、 置換にはワイルドカードは指定できない様子です。 これに変わる曖昧な置換を行う方法はないのでしょうか。 例えば項目中にある()で囲まれた単語を()ごと全て消すとか。 エディターなどで置換するように(*)を指定したいの ですが、指定方法が判りません。ご教示いただければ幸甚です。 | |||
15416 | Re:あいまいな?置換の仕方は? | 【多遊】 | 2002/03/10-16:27 |
記事番号15415へのコメント かずさんさん。こんにちは。さっそく試してみましたが >検索ではワイルドカードを使用する部分検索などがありますが、 >置換にはワイルドカードは指定できない様子です。 >これに変わる曖昧な置換を行う方法はないのでしょうか。 桐の項目置き換えにワイルドカードは使用できないみたいですね? >例えば項目中にある()で囲まれた単語を()ごと全て消すとか。 >エディターなどで置換するように(*)を指定したいの >ですが、指定方法が判りません。ご教示いただければ幸甚です。 私も試してみましたが ・項目置換で、#文字置換([],"("+*+")","") は、 計算式にあやまりがあります。で、失敗です。 つぎに ・変数管理で、「&STR」に、"("+*+")" と設定しておき 項目置換で、#文字置換([],&STR,"") は、 これはなんにも置換されませんでした。 残念ながらワイルドカードを使用した方法はわかりませんが 「( )」で囲まれて部分を括弧ごと消す計算式をご紹介します。 そこで、基本的な方法ですが、作業項目を作成して、置き換える方法をご紹介します。 作業項目を、作成して、項目計算式を設定します ・#部分列([元項目],#文字位置([元項目],"("), #文字位置([元項目],")")-#文字位置([元項目],"(")+1) 答えを出したい項目で、 ・#文字置換([元項目],[作業],"") こんな感じでいかがですか。 もし作業項目を作成しないで一度で行うためには、上記2行を まとめて #文字置換([元項目],#部分列([元項目],#文字位置([元項目],"("), #文字位置([元項目],")")-#文字位置([元項目],"(")+1),"") なお、元項目の場所に置き換える場合は #文字置換([],#部分列([],#文字位置([],"("), #文字位置([],")")-#文字位置([],"(")+1),"") で、けっこうです。 でもなにかワイルドカードを使用する方法がありそうですね。 もっと簡単な方法が他のかたから紹介されるかもしれません。 少々お待ち下さい | |||
15417 | Re:あいまいな?置換の仕方は? | 【多遊】 | 2002/03/10-16:53 |
記事番号15416へのコメント 補足。 項目の値に、( )が2組み以上ある場合 ・○○○○(△△△△△)○○○○(△△△△△)○○○○○○○○ 上記の場合は2回行えば可能ですが、 ・○○○(□□(△△△△△)□□□□)○○○○○○○○ のように、2重になってる場合や、先に )が、あって その後ろに ( が、ある場合は、上記計算式では処理できません。 その場合、#文字位置([元項目],"("),や#文字位置([元項目],")")を 利用して、どちらが先にあるか、また #文字数(#文字置換([元項目],"(",""))-#文字数(#文字置換([元項目],")","")) などを利用されるをお奨めいたします。 | |||
15418 | Re:あいまいな?置換の仕方は? | KH | 2002/03/10-23:46 |
記事番号15415へのコメント >検索ではワイルドカードを使用する部分検索などがありますが、 >置換にはワイルドカードは指定できない様子です。 >これに変わる曖昧な置換を行う方法はないのでしょうか。 > >例えば項目中にある()で囲まれた単語を()ごと全て消すとか。 >エディターなどで置換するように(*)を指定したいの 私も年数ばかり経っていますが、同じですのでお望みの解答にはなっていないかも知れませんし、 回答が後ほどあるでしょうけど、 以下のように2度の置換で可能かと思います。 1. 検索する文字列をワイルドカードを使用するにチェックを入れて(*)とします。 置換する文字列をそこではとうてい使われない文字、例えば、♀として置換してしまいます。 2. 次に、検索する文字列を♀にし、置換に計算式を使うにチェックを入れて、 置換する文字列に、#文字置換([],"♀","") ではどうでしょう。 この件は試していませんが、このような形で曖昧な置換をしていますのでコメントしました。 | |||
15435 | Re:あいまいな?置換の仕方は? | かず | 2002/03/12-16:33 |
記事番号15416へのコメント 【多遊】さんご回答有り難うございました。 >#文字置換([元項目],#部分列([元項目],#文字位置([元項目],"("), > #文字位置([元項目],")")-#文字位置([元項目],"(")+1),"") この式を使わせていただこうとしたのですが、複数(*)を含んだ項目の場合、 一つ目の(*)を置換すると、そこまでで終わりになり、 ()内が同じものだけは複数置換できます が、中身の違う()は無視されるようなので、再伸でもご指摘のとおり、 入れ子にして連続する以外手がないのだろうかと思案中です。 ともかくワイルドカードが使用できないことだけは確認できてすっきり致しました。 まずはお礼のみ。 |