こういう置換をしたいんですがNo.22659
ラスカル さん 07/02/28 16:46
 
例)
丸山丸男(25)住所 丸山市(丸山県)電話番号0000−0000
角山角男(30)住所 角山町(角山県)電話番号1111−1111


上記例で、(25)、(30)の部分だけ前後にスラッシュを入れて、
/(25)/、/(30)/としたいのですが…

わたしの拙い知識では、([0-9][0-9])を検索し、/([0-9][0-9])/とや
ったら、うまくいきませんでした。

どうぞよろしくお願いいたします。

[ ]
RE:22659 こういう置換をしたいんですがNo.22660
PineCone さん 07/02/28 17:14
 
ラスカルさん、こんにちは。1ユーザのpineconeです。

>上記例で、(25)、(30)の部分だけ前後にスラッシュを入れて、
>/(25)/、/(30)/としたいのですが…
>
>わたしの拙い知識では、([0-9][0-9])を検索し、/([0-9][0-9])/と
>やったら、うまくいきませんでした。
>
記号(括弧とスラッシュ)と数字はすべて全角なのでしょうか?
全角だと仮定すると、以下で置換できると思います。

検索:(([0-9][0-9]))
置換:/\0/

[注意点]
・検索文字列は、半角の括弧ではさむ
・置換文字列では、ヒットした検索文字列「\0」を使う

よろしくお願い致します。

[ ]
RE:22660 こういう置換をしたいんですがNo.22661
小電流 さん 07/02/28 17:30
 
検索:([0-9]{1,3})
置換:/\0/

[注意点]
・検索文字列は、半角の括弧ではさむ【必要はない】
・置換文字列では、ヒットした検索文字列【全体】「\0」を使う
・年齢なら1〜3桁でいいよね?:{1,3}は直前のパターン1〜3回の繰り返し

()で囲むのは、その部分を利用して置換する場合です。ヒット文字列全体は\0で表現
されます。

[ ]
RE:22661 こういう置換をしたいんですがNo.22662
秀丸担当 さん 07/02/28 18:47
 

>検索:(([0-9][0-9]))
>置換:/\0/

小電流さんも言われる通りですが、タグ付き正規表現には2種類あって、()でく
くった場合と \f で区切った場合で数え方が違います。
半角()でくくった場合は、\0は全体を表し、()の部分は順番に\1,\2…となりま
す。
\fで区切った場合は、\0が最初の区切まで、あとは区切りごとに\1,\2…となり
ます。

この例の場合は、\0も\1も同じになりますね。

[ ]
RE:22661 こういう置換をしたいんですがNo.22663
ラスカル さん 07/02/28 18:51
 
pineconeさん、小電流さん、ありがとうございました。
うまくできました。

ヒットした検索文字列で「\0」を使う、というのは勉強になりました。
作業がはかどりそうです。多謝

[ ]
RE:22662 こういう置換をしたいんですがNo.22664
PineCone さん 07/02/28 19:04
 
pineconeです。たいへん勉強になりました。

小電流さんを含めて、皆様、どうもありがとうございました。
これを機に、もっと正規表現について勉強します。

無責任な回答にお許しを。>ラスカル様

[ ]