- - PR -
正規表現で実現したいこと
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-16 15:46
すみません。
正規表現がうまくできずに困ってます。 次のような文字列があるとします。 [test=1]hoge=ほげほげ<tohoho ho=100>とほほ この文字列の最初の[test=1]はあったりなかったりします。 そして、最初の [test=1]hoge= だけを削除した形にしたいと 思ってます。 どのようにすればいいでしょうか。 よろしくお願い致します。 | ||||||||||||
|
投稿日時: 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 ] | ||||||||||||
|
投稿日時: 2006-02-16 19:28
なぜブラケットで囲ってるんですか? 意味違いますよ。
それと、この作業をしようとしている処理系は何ですか? Perlだったら
かな。 #なんかブラケットの前の円記号をひとつだけにできないんですが #表示では二つ連続してますが、実際は一個にしてください | ||||||||||||
|
投稿日時: 2006-02-16 20:13
これ、私のですよね? そのとおり、間違いですね。[...] は中の文字のいずれかにマッチする、 ってことですね。 じゃ、元々書いた内容を正しいものにすると、
...ってことですかね。 ちなみに、うちのは EmEditor(が持っている Regex++ なるライブラリ)で 確認してます。
きちんと 1 個に見えてますよ。 _________________ もしもし@RMAN 友の会 | ||||||||||||
|
投稿日時: 2006-02-16 20:15
ふと思ったんですが。
[test=1] の "1" の部分って実際には 1 以外の値もあったりするんでしょうか。 _________________ もしもし@RMAN 友の会 | ||||||||||||
|
投稿日時: 2006-02-17 00:08
分かりにくい書き方してすみません。
処理系云々は最初の質問された方宛です。 \はプレビューで見ると二重になってたんですけどねえ。 | ||||||||||||
|
投稿日時: 2006-02-17 16:59
環境はPerl系です。
test=1の1は1以外の数字もありえます。。。 質問の仕方が下手くそでもうしわけありません。m(__)m | ||||||||||||
|
投稿日時: 2006-02-17 17:11
Perl 系なら paniponi-x さんの記述がふさわしそうですね。 test=1 が 1 以外の数字もあるとしたら、[0-9]+ という指定になる? ※呼び捨てにしてしまってたので修正。大変失礼。 _________________ もしもし@RMAN 友の会 [ メッセージ編集済み 編集者: もしもし 編集日時 2006-02-17 17:12 ] |