DTP駆け込み寺
  1. [3613] 正規表現について 旧掲示板 2008/03/10 14:25

[ 返信 ]

正規表現について

Jedit4です。
半角数字を全角にしたいのですが
検索
[^0-9]0[^0-9]
置換
\10\2

これを9まで繰り返そうと考えています
ところが最初でつまずいています。
検索文字はヒットします。置換も0は全角になるのですが
\1\2にあたる文字が消えてしまうのです。

なにか基本的に間違っているのでしょうか?

きよはる 2008/03/10 14:25:39
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

001

正規表現の勉強をしたいなら別ですが、成果を求めるなら、こういったのを利用してはいかが?繰り返しもないし。
URL http://www3.kcn.ne.jp/~tomate/JavaScript/kanakana.html

がび 2008/03/10 15:01:01
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

002

ツールメニューの「半角→全角...」では処理できないの?

masao 2008/03/10 15:02:36
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/312.9 (KHTML, like Gecko) Safari/312.6

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

003

Jeditは分かりませんが、Perlなら[^0-9]の前後にパーレンが必要です。

がびさん<一桁だけ、全角にしたい..ということらしいです。

匿名 2008/03/10 15:04:00
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

004

003>>
脊髄反射的にRESしてしまいました。
[^0-9]0[^0-9]ということは1桁の数字のみ置換ということですね。2桁以上の数字は変換させたくない、と。
失礼しました。

プログラム言語ごとに正規表現の解釈が違うように、エディタの正規表現は、エディタごとに振る舞いも違うのでややこしいですよね。

\1、\2って具体的には何なんでしょう?
\って正規表現では意味を持っている記号なので。

がび 2008/03/10 15:44:08
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

005

>\って正規表現では意味を持っている記号なので

\

名無しさん 2008/03/10 15:48:45
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

006

>検索
>[^0-9]0[^0-9]
>置換
>\10\2

[^0-9]を\1、\2にしたいのでしょう。

名無しさん 2008/03/10 15:51:01
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

007

試したのはJedit Xなのが何ともですが、[きよはる]さんの正規表現通りで一括置換が可能です。

[^0-9]0123456789[^0-9]
\10123456789\2

原始的ではありますが、上のように一対一にしてしまえば一桁数字は一発で全角に変換可能です。Jedit 4の動作環境にないので、4の検証はできません。悪しからず……。

温故知新 2008/03/10 16:09:11
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.15.1 (KHTML, like Gecko) Version/3.0.4 Safari/523.15

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

008

すみません、いい加減なことを書いたようです。

([^0-9])0([^0-9])
\10\2

と、003[匿名]さんが書かれているように「パーレン」が抜けているのが原因です。パーレンのヌケが[きよはる]さんの疑問に対する答でした。007の書き込みは、SEDで言うところのyコマンドですが、無視してください。Jeditでは変なことになってしまった……。すみません。

温故知新 2008/3/10 17:13
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.15.1 (KHTML, like Gecko) Version/3.0.4 Safari/523.15

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

9

短時間でこれだけの書き込み心強い掲示板です

検索前→ あいう0ういあ
置換後→ あい0いあ

こういう状態でした
miでも同様でしたので(考えてみればヒットしていましたが黄色・・警告していたのですね)
もうギブアップ状態でしたので、書き込ませていただきました。

{ } このパーレンじゃなかったのですね
わかってみれば・・・・

Jeditのスーパーマニュアルも参考にしたのですが { }のような・・ 読解力がないのかなぁ

温故知新さま
名無しさん
がびさん
masaoさま
匿名さま 感謝 感謝

書き込んでよかった・・ 初心者はこんな入り口で挫折するんですよね
ありがとうございました

きよはる 2008/3/10 17:58
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

10

>>きよはる
普通にJedit4の標準機能じゃどうして駄目なの?

  2008/3/10 17:59
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

11

>普通にJedit4の標準機能じゃどうして駄目なの?

1桁数字だけ全角ってないですよね

再起動して確認しましたら
Jedit4はこちらのパーレンでよかったようです
{[^0-9]}0{[^0-9]}
miはこちらのパーレン
([^0-9])0([^0-9])

のようでした

きよはる 2008/3/10 18:40
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

12

>1桁数字だけ全角ってないですよね
純正でライブラリにありますよ。

  2008/3/10 23:16
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp) AppleWebKit/523.15.1 (KHTML, like Gecko) Version/3.0.4 Safari/523.15

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

13

[ ]さん ありましたよ! ありがとうございます
「数値書式の統一」

AppleScript 16行でできるんだね

収穫はおおきいです 勉強になりました

きよはる 2008/3/11 8:36
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

[3613] 旧掲示板 (2008/03/10 Mon 14:25)