- PR -

正規表現で実現したいこと

投稿者投稿内容
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2006-02-16 15:46
すみません。
正規表現がうまくできずに困ってます。

次のような文字列があるとします。

[test=1]hoge=ほげほげ<tohoho ho=100>とほほ

この文字列の最初の[test=1]はあったりなかったりします。
そして、最初の [test=1]hoge= だけを削除した形にしたいと
思ってます。

どのようにすればいいでしょうか。
よろしくお願い致します。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-16 16:16
"[test=1]hoge=" もしくは "hoge=" が必ず先頭にある、という状態でしょうか?

こんなデータ?------------------------------
[test=1]hoge=ほげほげ<tohoho ho=100>とほほ
hoge=ほげほげ<tohoho ho=100>とほほ
[test=1]hoge=ほげほげ<tohoho ho=100>とほほ
--------------------------------------------

^.*hoge=

または

^[\[test=1\]]*hoge=

という指定で、先頭の "[test=1]hoge=" と "hoge=" が選択されましたが、
実際のデータと変更後が分からないのでこれで正しいかどうか自信なし。

※"." 指定だと [test=1] 以外何でもかんでも選択されますが、
それじゃあんまり?
_________________
もしもし@RMAN 友の会

[ メッセージ編集済み 編集者: もしもし 編集日時 2006-02-16 16:25 ]
paniponi-x
常連さん
会議室デビュー日: 2006/01/14
投稿数: 27
投稿日時: 2006-02-16 19:28
なぜブラケットで囲ってるんですか? 意味違いますよ。
それと、この作業をしようとしている処理系は何ですか?

Perlだったら

コード:
s/^(\[test=1\])?hoge=//;



かな。

#なんかブラケットの前の円記号をひとつだけにできないんですが
#表示では二つ連続してますが、実際は一個にしてください
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-16 20:13
引用:

paniponi-xさんの書き込み (2006-02-16 19:28) より:

なぜブラケットで囲ってるんですか? 意味違いますよ。



これ、私のですよね?
そのとおり、間違いですね。[...] は中の文字のいずれかにマッチする、
ってことですね。

じゃ、元々書いた内容を正しいものにすると、
コード:
^(\[test=1\])*hoge=


...ってことですかね。

ちなみに、うちのは EmEditor(が持っている Regex++ なるライブラリ)で
確認してます。


引用:

paniponi-xさんの書き込み (2006-02-16 19:28) より:

#なんかブラケットの前の円記号をひとつだけにできないんですが
#表示では二つ連続してますが、実際は一個にしてください



きちんと 1 個に見えてますよ。

_________________
もしもし@RMAN 友の会
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-16 20:15
ふと思ったんですが。

[test=1]

の "1" の部分って実際には 1 以外の値もあったりするんでしょうか。

_________________
もしもし@RMAN 友の会
paniponi-x
常連さん
会議室デビュー日: 2006/01/14
投稿数: 27
投稿日時: 2006-02-17 00:08
分かりにくい書き方してすみません。
処理系云々は最初の質問された方宛です。

\はプレビューで見ると二重になってたんですけどねえ。
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2006-02-17 16:59
環境はPerl系です。

test=1の1は1以外の数字もありえます。。。

質問の仕方が下手くそでもうしわけありません。m(__)m
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-02-17 17:11
引用:

nishimanさんの書き込み (2006-02-17 16:59) より:
環境はPerl系です。

test=1の1は1以外の数字もありえます。。。



Perl 系なら paniponi-x さんの記述がふさわしそうですね。
test=1 が 1 以外の数字もあるとしたら、[0-9]+ という指定になる?

※呼び捨てにしてしまってたので修正。大変失礼。
_________________
もしもし@RMAN 友の会

[ メッセージ編集済み 編集者: もしもし 編集日時 2006-02-17 17:12 ]

スキルアップ/キャリアアップ(JOB@IT)