From SNA02388 @ nifty.com Tue May 1 15:30:28 2007 From: SNA02388 @ nifty.com (naya) Date: Tue, 01 May 2007 15:30:28 +0900 Subject: [regexp 18] =?iso-2022-jp?b?GyRCP3Q7eiROTWVOcyRLJV4lQyVBJDUkOyRrJEskTxsoQlsw?= =?iso-2022-jp?b?LTldGyRCJHI3KyRqSlYkOSQ3JCskSiQkJE4kKyEpGyhC?= Message-ID: <20070501152815.F428.SNA02388@nifty.com> こんにちは。nayaと申します。 年月をあらわす6桁の数字が以下のようにあります。 200205 199603 200009 199508 199703 199503 199911 200308 199405 200205 200412 上4桁を残して下2桁をオミットするのに 置換前:([0-9][0-9][0-9][0-9])[0-9][0-9] 置換後:\1 としましたが、もっと短い書き方はありませんか (5桁目は0か1しかありえないですが、そういう主旨の質問ではないです) 例えば 20060203142543など、年月日時分秒をあらわす14桁とかになると [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] …みたいに、[0-9]を14回も示さなければならなくなります。 環境はEmEditor6、ヘルプに「EmEditor はPerl の正規表現構文に基づいていま す。」とあります。 -- naya, SNA02388 @ nifty.com From kohenji @ sarahsystems.com Tue May 1 15:59:51 2007 From: kohenji @ sarahsystems.com (Shoji Ogura) Date: Tue, 01 May 2007 15:59:51 +0900 Subject: [regexp 19] Re: =?iso-2022-jp?b?GyRCP3Q7eiROTWVOcyRLJV4lQyVBJDUkOyRrJEsbKEI=?= =?iso-2022-jp?b?GyRCJE8bKEJbMC05XRskQiRyNyskakpWJDkkNyQrJEokJCROJCsbKEI=?= =?iso-2022-jp?b?GyRCISkbKEI=?= In-Reply-To: <20070501152815.F428.SNA02388@nifty.com> References: <20070501152815.F428.SNA02388@nifty.com> Message-ID: <20070501154056.BDEF.KOHENJI@sarahsystems.com> こんにちわ、初めて投稿しますおぐらです。 On Tue, 01 May 2007 15:30:28 +0900 naya wrote: > 上4桁を残して下2桁をオミットするのに > > 置換前:([0-9][0-9][0-9][0-9])[0-9][0-9] > 置換後:\1 > > としましたが、もっと短い書き方はありませんか http://jp.emeditor.com/help/howto/search/search_regexp_syntax.htm にEmEditorで利用できるメタ文字が出ています。 これを見ると{}の量指定子が使えるようなので 置換前:([0-9]{4})[0-9]{2} 置換後:\1 で、どうですか? From SNA02388 @ nifty.com Tue May 1 16:07:21 2007 From: SNA02388 @ nifty.com (naya) Date: Tue, 01 May 2007 16:07:21 +0900 Subject: [regexp 20] =?iso-2022-jp?b?GyRCIVo4Zk5pIVsbKEIgUmU6IBskQj90O3okTk1lTnMbKEI=?= =?iso-2022-jp?b?GyRCJEslXiVDJUEkNSQ7JGskSyRPGyhCWzAtOV0bJEIkcjcrJGobKEI=?= =?iso-2022-jp?b?GyRCSlYkOSQ3JCskSiQkJE4kKyEpGyhC?= In-Reply-To: <20070501154056.BDEF.KOHENJI@sarahsystems.com> References: <20070501152815.F428.SNA02388@nifty.com> <20070501154056.BDEF.KOHENJI@sarahsystems.com> Message-ID: <20070501160303.F42B.SNA02388@nifty.com> おぐらさん、こんにちは。早速のご教示ありがとうございました。 > これを見ると{}の量指定子が使えるようなので > > 置換前:([0-9]{4})[0-9]{2} > 置換後:\1 まさにそういうやつはないのかと思っていました。 {}の量指定子で、繰り返し回数が指定できるわけですね。 しかも、わたしの手元にもあるヘルプに 思いっきり書いてあったのですね(失礼しました) 大変参考になりました。ありがとうございました。 -- naya, sna02388 @ nifty.com From kohenji @ sarahsystems.com Tue May 1 16:17:30 2007 From: kohenji @ sarahsystems.com (Shoji Ogura) Date: Tue, 01 May 2007 16:17:30 +0900 Subject: [regexp 21] Re: =?iso-2022-jp?b?GyRCIVo4Zk5pIVsbKEIgUmU6IBskQj90O3okTk1lGyhC?= =?iso-2022-jp?b?GyRCTnMkSyVeJUMlQSQ1JDskayRLJE8bKEJbMC05XRskQiRyNysbKEI=?= =?iso-2022-jp?b?GyRCJGpKViQ5JDckKyRKJCQkTiQrISkbKEI=?= In-Reply-To: <20070501160303.F42B.SNA02388@nifty.com> References: <20070501154056.BDEF.KOHENJI@sarahsystems.com> <20070501160303.F42B.SNA02388@nifty.com> Message-ID: <20070501161022.BDF5.KOHENJI@sarahsystems.com> おぐらです。ちょっとだけ補足を On Tue, 01 May 2007 16:07:21 +0900 naya wrote: > > まさにそういうやつはないのかと思っていました。 > {}の量指定子で、繰り返し回数が指定できるわけですね。 ヘルプをご覧になられるとわかると思いますが 文字数の少なさだけを考えたなら、さらにエスケープシーケンスを使って ([0-9]{4})[0-9]{2} を (\d{4})\d{2} と書くのもアリです。 一つの[0-9]に対して3文字ほど節約できます(笑)