正規表現で数字ばっかりと、なおかつ英字No.31240
紅色 さん 12/05/29 01:45
 
先日は正規表現で教えて頂きありがとうございました。
あれから、簡単な表現のものだったら少しわかるようになりました。

で、今回も検索でずっと探して試してたのですが、うまくいきません。
時間もかかりすぎてしまって、こちらにお伺いにきました。
すみませんが、どうぞご教授おねがいします。

商品番号が数字ばっかりのものと、数字に英字が混ざってる物があり
98705
TS035
(3m7)
このような単語の前後に抜き出すための印として記号を付けたいのです
▲98705▲
▲TS035▲
▲(3m7)▲
な感じにしたくて、

検索  \f[.+\d+]
置換え ▲\0▲
もダメだし、\f([.+\d+])も駄目だし、
([\i+\d+])もだめですし、
[\d+][\(.+\)]もダメ。

すみません、とうとう頭に湯気がたってしまいました。
番号は、文章の中に不定期にあります。

よろしくおねがいします。

[ ]
RE:31240 正規表現で数字ばっかりと、なおNo.31242
秀丸担当 さん 12/05/29 10:09
 

>検索  \f[.+\d+]
>置換え ▲\0▲
>もダメだし、\f([.+\d+])も駄目だし、
>([\i+\d+])もだめですし、
>[\d+][\(.+\)]もダメ。

「\f」を使う場合は、「\f」よりも前の部分が\0で、\fの後が\1になります。
この例では\fの前には何も無いので、\0は空の内容になります。

\fを使わない場合は、\0は全体を表すので、特に\fを書くこと無く\0で元の文字
列を表すことができます。

商品番号のルールがはっきりとわからないので合っているかわかりませんが、少
なくとも数字は1つ含み、英字はあっても無くてもよくて、前後に()が付く場合
があると仮定して、この例の場合は、

検索 [a-zA-Z\d]*\d+[a-zA-Z\d]*|\([a-zA-Z\d]*\d+[a-zA-Z\d]*\)
置換 ▲\0▲

としてできました。

[ ]
RE:31242 正規表現で数字ばっかりと、なおNo.31243
紅色 さん 12/05/29 13:16
 
秀丸担当様 ありがとうございます!

できました!!
3種類ともの言葉に▲印が入りました!

1種類ずつやっていたので、これで間違いもなくなり作業へのストレスも減りました!
ありがとうございます。

作っていただいたこの表現の解釈がやっぱりわかりませんが、置き換えができあがっ
たのでよかったです!

……………………………
htmlタグを省く記載ですが、

検索  <.+?>
置換え 


検索  <[^>]*>
置換え

どっちも出来ましたが、違いってなんなんでしょうか
……………………………
(3m8)のような文字を▲(3m8)▲となるように自分で考えて作ってたのですが、どっち
の書き方でも置換わってくれてました。
書き方は間違ってないでしょうか?
(試行錯誤して偶然にできあがった)

でも、秀丸担当様の教えていただいたのがありますので今後は教えてもらったのを使
うのですが。
なんでだろうって思ったのでお伺いできればな。と思いました。

検索  \f\(.+\)
置換え ▲\1▲


検索  \(.+\)
置換え ▲\0▲




[ ]
RE:31243 正規表現で数字ばっかりと、なおNo.31244
秀丸担当 さん 12/05/29 14:34
 

>htmlタグを省く記載ですが、
>
>検索  <.+?>
>置換え 
>
>と
>検索  <[^>]*>
>置換え
>
>どっちも出来ましたが、違いってなんなんでしょうか

この例での違いは、
「<.+?>」の場合は間に一文字以上無いとヒットしないです。
「<[^>]*>」の場合は間に文字が無くてもヒットします。

「<.*?>」と「<[^>]*>」は同じ結果になると思います。
「<.+?>」と「<[^>]+>」も同じ結果です。
この例では結果は同じですが、意味は違うので、組み合わせによっては違う結果
になることがあります。
例えば「<.*?」と「<[^>]*」の場合は、前者は「<」から始まって改行まではヒ
ットしませんが、後者は改行までヒットします。


正規表現についての詳細は、ヘルプを参照してみてほしいです。
秀丸エディタのヘルプの「目次− 検索系コマンド−正規表現 」のページにいろ
いろ説明があります。

[ ]
RE:31244 正規表現で数字ばっかりと、なおNo.31247
紅色 さん 12/05/30 11:44
 
秀丸担当様 


わかりやすく教えていただき誠にありがとうございました。
なるほど理解できました!


[ ]