増分3の数値の検索

[2585]増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/13(Fri) 09:59:59
先日は、『特定文字列の抽出 』でありがとうございました。
またお聞きしたいのですが、
ある数値から始まって3づつ増えていく数値と4づつ増えていく数値を検索置換したいのですが出来ますでしょうか?
1スタートで増分3であれば、1、4、7、10、13、16、・・・
2スタートで増分4だと、2、6、10、14、18、・・・
というように検索して
検索文字列の後に増分3は、★。増分4は、●。を付加
増分3は、1★、4★、7★、10★、13★、16★、・・・
増分4は、2●、6●、10●、14●、18●、・・・
というように検索置換するには
正規表現で検索文字列をどう表現すればよいでしょうか?
(カレンダーの交代勤務シフトの目印のようです。)
よろしくお願いします。
» 1
[2587]Re: 増分3の数値の検索 | 投稿者:せうぞー | 投稿日:2009/03/13(Fri) 11:35:41
こういうものもやはり、rubyを使うと簡単に書けます。


#! /usr/bin/ruby -Ku

def marking(str)
   if str =~ // then
       return str
   end
   my_num = str.to_i
   
   if (my_num - 1) % 3 == 0 then
       str += "★"
   end
   
   if (my_num - 2) % 4 == 0 then
       str += "●"
   end
   return str
end

while line = ARGF.gets
   line.gsub!(/([]+)/) {marking($1)}
   print line
end
» 2
[2588]Re: 増分3の数値の検索 | 投稿者:いき | 投稿日:2009/03/13(Fri) 11:43:11
ヒロさん>>
★の人と●の人のシフトが重なる場合はどのように表記するのですか?
» 3
[2592]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/13(Fri) 12:36:55
せうぞー様 ありがとうございます。
表組みの既に組みあがっている部分ですので
InDesign上で検索置換で出来ればと思ったのですが
やはりrubyなど外部でしないと難しいでしょうか?
とある方(60才近い年配の方)から聞いてこられた事で
「正規表現という物でこういう置換できるみたいだけど。」と
ですので、rubyは無理で。すいません。
いつもかなりな無理をお願いしてまして邪険に出来ず(これは、こちらの都合ですが)

それと、もう一つ聞かれてまして

++$renban_counter;
$_\t=\t$renban_counter;

これなのですが、「\」は化けるかもしれませんので全角で表記してます。
その方曰く、連番を付けてくれるもので、perlプログラムらしいとのこと。詳細はすいませんがわかりません。
1から連番を付けてくれるそうなのですが、
これを10からスタートにしたい。
増分1なのを、2や3にしたい。
また、1から5の繰り返しで番号をふりたい。
ということも聞かれてます。
場違いな質問ですが、おわかりになる方いらっしゃいましたらご教授ください。

いき様
>★の人と●の人のシフトが重なる場合はどのように表記するのですか?
10★●、10●★のどちらでも良いので、
増分3の★で検索置換して、その後、増分4の●で検索置換すればよいかなと思っていました。

よろしくお願いします。
» 4
[2593]Re: 増分3の数値の検索 | 投稿者:せうぞー | 投稿日:2009/03/13(Fri) 13:02:49
>やはりrubyなど外部でしないと難しいでしょうか?

JavaScriptでも書けると思います。
「いつもかなりな無理をお願い」している方のためなら、ヒロさんも少し頑張って書いてあげると、きっと喜ばれるんじゃないでしょうか。
アルゴリズムは同じです。検索でマッチさせて、contentsをとりだして、それが整数型だったら、スタート値を引いて、商が0なら文字列を操作します。


>これを10からスタートにしたい。
この2行しか書かれていないと、なにがなんだか、さっぱりわからないのですが、、、
おそらく
$renban_counter = 10;
を最初に入れるとできます。

>増分1なのを、2や3にしたい。
++$renban_counter;

$renban_counter = $renban_counter + 2;
にすればいいでしょう。

>1から5の繰り返しで番号をふりたい。
ループで書いてください^^

実際には、どなたかプログラマの方に相談してみてはいかがでしょうか。
ここは無料でスクリプトを書いてくれるという場所ではないですので^^
さしでがましいようですが、直接ご連絡をいただければ、ご相談には乗れると思います。
» 5
[2595]Re: 増分3の数値の検索 | 投稿者:たけうちとおる | 投稿日:2009/03/13(Fri) 22:55:55
正規表現で行くなら

検索文字列:^(1|4|7|10|13|16|19|22|25|28|31)$

置換文字列:$1★

こんなのを1始まり、2始まり、3始まりって感じでパターンの数だけ作ってするとなんとかいけるかもしれませんね。
» 6
[2596]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/14(Sat) 10:24:41
ありがとうございます。
せうぞー様
>JavaScriptでも書けると思います。
rubyもJavaScriptもまだまだ全然わからないレベルでして、rubyで書いていただいた内容も??です。

>$renban_counter = 10;を最初に入れるとできます。
これは、ダメだったようです。

>$renban_counter = $renban_counter + 2;にすればいいでしょう。
これは、うまくいったそうです。

>さしでがましいようですが、直接ご連絡をいただければ、ご相談には乗れると思います。
どちらに連絡したらよろしいでしょうか?

たけうちとおる様
とりあえず今回は、そうのようにしてはと伝えます。

ありがとうございます。
» 7
[2598]Re: 増分3の数値の検索 | 投稿者:いき | 投稿日:2009/03/14(Sat) 13:27:46
> これは、ダメだったようです。
最初の例示が2行しかないので、なにがどうダメなのか掲示板を見ている人には判断のしようもないのですが。

> とりあえず今回は、そうのようにしてはと伝えます。
表組ならたけうちとおるさんの検索でヒットしますが、タブ区切りならもう少し違う書き方が必要になりますよ。
» 8
[2599]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/14(Sat) 15:21:10
すいません。
>最初の例示が2行しかないので、なにがどうダメなのか掲示板を見ている人には判断のしようもないのですが。
InDesignのことではないので、これ以上、詳しく書くのは、いけないと思いまして。でもせっかく教えていただいたので、そのことの結果だけお知らせしようと思ったのですが、すいませんでした。
ただ2行だけしかないそうです。私ももう少しお聞きしたいのですが、どちらでお聞きすればよいですか? 直接メールさせていただいてよいのでしょうか?

>表組ならたけうちとおるさんの検索でヒットしますが、
表組みですので大丈夫です。
» 9
[2600]Re: 増分3の数値の検索 | 投稿者:せうぞー | 投稿日:2009/03/14(Sat) 16:44:30
キツい言い方になりますが、わからないなら、調べてください。
調べても分からないことで、この掲示板を読んでいらっしゃる(または未来に読むであろう)読者の方の利益にかなうと判断されたなら、
どこまで調べて、なにをしたのか、どうしたいのかを具体的に書いて投稿してください。
もし、そうしたことが面倒だと感じるなら、
あるいは業務の都合上、重要な部分を秘匿しておく必要があるのなら、しかるべき人へ「仕事」としてオファーしてください。

使用状況などがわからないので、以下はずしているかどうかもわからないんですが、
ワンライナーで済むことですし、もったいぶるつもりもありませんので、試してみてください。

$ perl -e 'for($i=10;$i<=100;$i=$i+2){print "$i"}'
» 10
[2601]Re: 増分3の数値の検索 | 投稿者:同じく初心者 | 投稿日:2009/03/14(Sat) 19:59:43
スレ主は、正規表現でどうすればよいか聞いているのに
rubyやJavaScriptがいいって言っても
それに全然わからんと言ってるのだし。
分かる人からすれば、rubyやJavaScriptがいいのでしょうけど。
分かってない初心者の時に、調べてもどれが今必要で使える情報なのかってわからないですから

perlのことについては、
>実際には、どなたかプログラマの方に相談してみてはいかがでしょうか。
>ここは無料でスクリプトを書いてくれるという場所ではないですので^^
>さしでがましいようですが、直接ご連絡をいただければ、ご相談には乗れると思います。
そう言われたから、ここでの書き込みは控えて直接連絡しようと、どこに連絡すればよいかって聞いてるのに
ちょっとひどいように思います。
先の書き込みにメルアド載せてなかったから聞いてるんだと思うけど。
» 11
[2602]Re: 増分3の数値の検索 | 投稿者:せうぞー | 投稿日:2009/03/14(Sat) 22:52:56
>スレ主は、正規表現でどうすればよいか聞いているのに
>rubyやJavaScriptがいいって言っても

正規表現ではできないので、rubyやJavascriptでできますと言ったまでです。

>分かってない初心者の時に、調べてもどれが今必要で使える情報なのかってわからないですから

初心者だからこそ、調べて、努力して、学ぶべきではないでしょうか。
そういう意味では、わたしも初心者ですし、初心者でありつづけたいと思っています。
初心者だとわからないことを人に聞くのがあたりまえですか?
このBBSはそういう初心者のための無料のサポートセンターですか?

>先の書き込みにメルアド載せてなかったから聞いてるんだと思うけど。

うーん、わたしはスレ主さんや同じく初心者さんと違って、HPのURLも公開しています。
HPへ行けば、誰もがわたしにメールを送れます。
そんな簡単なことも、「調べて」もらえませんか?
» 12
[2604]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/16(Mon) 09:18:17
せうぞー様
>うーん、わたしはスレ主さんや同じく初心者さんと違って、HPのURLも公開しています。
>HPへ行けば、誰もがわたしにメールを送れます。
>そんな簡単なことも、「調べて」もらえませんか?

申し訳ございません。
windows XPのIE 7でこの掲示板を閲覧しているのですが
お名前の横に出るホームページ、E-mailのアイコンが読み込まれないようで、四角い記号状態で、リンクがあるとは気づきませんで、すいませんでした。リロードするとアイコンが出てきました。
後ほどメールさせていただきます。
» 13
[2606]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/16(Mon) 12:50:24
++$renban_counter;
$_\t=\t$renban_counter;
について補足します。
モリサワのMSD-B2というシステムの
MXPというソフトで検索置換するときの
参照ファイルの中身の記述です。

$renban_counter = 10;
$renban_counter = $renban_counter + 2;
$_ = $renban_counter;

は、結果が10、12、14、・・・とはならず
12、12、12、・・・となりました。

$renban_counter = 10;がなければ
2、4、6、8、・・・となります。


$ perl -e 'for($i=10;$i<=100;$i=$i+2){print "$i"}'
は、全くなにも置換されず、元のままで
エラーメッセージ等が出ないので
どこがいけないのかがわかりません。

特殊な使い方だからかもしれません。
メーカーに聞ければいいのですが
サポート外の内容で

InDesignのことではなく
ご迷惑をおかけしまして
申し訳ございませんでした。
» 14
[2607]Re: 増分3の数値の検索 | 投稿者:せうぞー | 投稿日:2009/03/16(Mon) 13:17:12
お使いのシステムはおそらくクローズドなシステムなので、
正しく動作するかどうかわかりませんが、下記のようにしてみたらいかがでしょうか。

if ($. == 1) {
$renban_counter = 10;
} else {
$renban_counter = $renban_counter + 2;
}
$_ = $renban_counter;


>$ perl -e 'for($i=10;$i<=100;$i=$i+2){print "$i"}'
>は、全くなにも置換されず、元のままで

これはワンライナーですから、DOSプロンプトから実行します。
適宜、数値を変えれば、スクリプトとして保存するまでもなく正しく連番ファイルを作成するでしょう。
» 15
[2610]Re: 増分3の数値の検索 | 投稿者:ヒロ | 投稿日:2009/03/16(Mon) 15:59:47
if ($. == 1) {

if ($renban_counter < 1) {
にしましたら
思い通りの動作になりました。

今回は大変失礼しました。
本当にありがとうございました。
» 16
[2611]Re: 増分3の数値の検索 | 投稿者:通りすがり | 投稿日:2009/03/19(Thu) 11:05:31
せうぞー様

>正規表現ではできないので、rubyやJavascriptでできますと言ったまでです。

でも質問の返答が、いきなりrubyのスクリプトがババーンって出てきたら……???って思います。
まず調べるのが前提であるのを否定はしません。
むしろ同意しますが。
すみません。余計なことでした。
» 17
[2619]Re: 増分3の数値の検索 | 投稿者:ばば | 投稿日:2009/03/20(Fri) 12:23:30
はじめまして
大阪のばばといいます。

Rubyって、人気ないんですねぇTT;

正規表現で(1|4|,,,,の部分は11とかにもヒットするんじゃないでしょうか?始めと終わりに「先読み」、「後読み」とかつけるといいんでしょうか。

調べる調べないもあるんですが、別の方からの質問でしたら、その方に直接来てもらったほうが、いいのかなと思いました。

もちろん、私の思い過ごしだと思いますが、

なんとなく、うまく立ち回って「ほら、私がいろいろあたってあげて解決したでしょう?」という役回りをされて、そのために、答えてた方々が珍問に頭をひねって苦労されるというのは、やっぱり釈然としませんが、いかがでしょう?

なんてことではないですよね?^^;

スレ主さんは、しっかり、その元の質問された方にも、掲示板で助けてくれた(例えうまくいかなくても、助けてくれようとした)こと、その内容をお伝えして、気持ちよく助け合えるといいですね!
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア