- 1 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:16:48 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。 【 前スレ 】 正規表現 Part6 pc12.2ch.net/test/read.cgi/tech/1241537764/
- 296 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 16:37:34 ]
- どこが皮肉なんだろ?
おれも >>291 にはクックブックの方がいいと思うけど。
- 297 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 18:12:56 ]
- >>1は料理本が出る前のテンプレだよなあ。
このスレの質問は、初心者ばかりだから、梟じゃわけわからんことが多いだろう。
- 298 名前:293 [2010/07/05(月) 19:29:54 ]
- おっしゃる通り、初心者です
梟本は持ってるんですが、確かに難解で中々身についてる感じがしないです 専門書と言うか辞書を読んでる感覚で頭で分かったつもりになるだけと言うか… 料理本、よろしければURLか正式タイトル教えて頂けませんか?
- 299 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 20:09:02 ]
- 正規表現クックブック
www.oreilly.co.jp/books/9784873114507/ いろんな実例が載ってるから便利でいいと思うよ。
- 300 名前:298 [2010/07/05(月) 20:53:05 ]
- >>299
買いました! これのが易しそうですね ありがとうございます 皆さんはハンドブックやクイックリファレンスみたいなの持ってますか?
- 301 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:33:53 ]
- 持っていない。
料理本も他人に推奨しながらまだ買ってないし、梟も2版だけどね。 3版で2版にない良いところがあったら教えてほしいとこr。
- 302 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 22:37:51 ]
- フクロウ本で否定の先読みが出てくるのって2章じゃないか
難解とかいう以前に読んでないんだろう
- 303 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:49:53 ]
- 質問です
●正規表現の使用環境 JavaScript ●検索か置換か? 置換 ●説明 「チョコレート」を「チョコ」に置換したいです でも「板チョコレート」「バレンタインチョコレート」はヒット(置換)させたくないです ●対象データ やはり板チョコレートよりも バレンタインチョコレートよりも 自分で買うチョコレート! ●希望する結果 やはり板チョコレートよりも バレンタインチョコレートよりも 自分で買うチョコ! (!(バレンタインチョコレート|板チョコレート)チョコレート),チョコ/g …ダメです。やっぱ難しいです。
- 304 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 00:04:27 ]
- (?<!板)(?<!バレンタイン)チョコレート
- 305 名前:276 mailto:sage [2010/07/07(水) 00:36:58 ]
- 久しぶりに戻ってきて、続きのコメントがあったことに気付きました。
>>282 さんがおっしゃる通りでした。0 文字マッチで動いてたんですね。 結局最後のものを使わせていただきました。 ありがとうございました。
- 306 名前:303 [2010/07/07(水) 12:28:01 ]
- >>304
上手くいきません 「<」って、どう言う意味なんですか?
- 307 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 13:14:47 ]
- この先生き残る、の逆verかw
- 308 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 14:08:25 ]
- >>306
JavaScriptは戻り読み使えないのか。ごめん (?<!...) で否定の戻り読み。「左に"板"も"バレンタイン"もない"チョコレート"」って意味 これならどうだろ var s = "やはり板チョコレートよりも\nバレンタインチョコレートよりも\n自分で買うチョコレート!"; s..replace(/(板|バレンタイン)?チョコレート/g, function(str, p0){ return p0 ? str : 'チョコ'}); https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Regular_Expressions https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/String/replace
- 309 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 17:39:20 ]
- 行頭のひとつ、または連続するスペースの
それぞれひとつひとつを全て検索対象にする (連続したものをひとまとまりとして扱うのではなく。そして文中のスペースは対象にしない) には、どう書けばいいですか?
- 310 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:33:14 ]
- 自己解決しました
- 311 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 18:46:20 ]
- どんな風に解決したか書いてくれよ。
- 312 名前:309 mailto:sage [2010/07/07(水) 19:30:22 ]
- >>310は自分じゃないけど
でも実際自己解決しました 解決って、その通りのことができたわけじゃないんだけど やろうとした目的は果たせたんで、おkとします >>310さん、せっかくすばらしい人間性を披露してくださったのに あなたがワクワク期待してたような反応してあげられなくて、ごめんなさい
- 313 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 19:34:21 ]
- つか報告だけなら来なくていいよ。
- 314 名前:デフォルトの名無しさん [2010/07/08(木) 09:42:56 ]
- >>308
動かないっす(;´Д`) ブラウザはFF JavaScriptに限らずVBscriptでも動けばいいと思ったんですが 厳しそうですね… これって、やろうとしてる事は前方参照否定になるんですかね?
- 315 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 13:16:00 ]
- >>314
x s..replace o s.replace
- 316 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 17:54:33 ]
- ●正規表現の使用環境
PHP5 ●検索か置換か? 検索 ●説明 [[ と ]] に囲まれた文字列を配列で取得したい ●対象データ [[hare]][[ame]][[kumori]][[yuki]][[]][[kaminari]][[taifuu]] ●希望する結果 matches[0] = hare matches[1] = ame matches[2] = kumori matches[3] = yuki matches[4] = matches[5] = kaminari matches[6] = taifuu よろしくお願いします。
- 317 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 07:36:38 ]
- 最近、正規表現ってことばをよき聞きますが
これってどんな人がどんな時に使うんでしょうか? ぐぐって調べてもイマイチ意味が分かりませんし いったいどんな人が使ってるのか疑問です。 自分みたいにパンピーは知らなくても無問題でしょうか?
- 318 名前:314 [2010/07/09(金) 08:25:23 ]
- >>308,315
ありがとう! でも正規表現だけだと、無理って事? >>317 君は知る必要ないね 一般事務職でも使うケースはあるけど ワイルドカードだけ取り敢えず覚えておいては? と、正規表現初心者の俺が(ry
- 319 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 10:43:04 ]
- MS-DOS時代の人間なんで
ワイルドカード(*、?だけですけど)の使い方は分かってます。
- 320 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 11:22:26 ]
- 正規表現を使うソフトと出会ったら勉強すればいい。
出会ってもないのに知る必要はないと思う。
- 321 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 15:36:10 ]
- 正規表現とワイルドカードを一緒くたにすると
怖いお兄さん(お姉さんも可)に怒られるからよい子は注意な
- 322 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 18:26:02 ]
- 心配するな。
ここで正規表現って騒いでるやつも知らないから。 その証拠にワイルドカードぐらいしか言えないだろ?w
- 323 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 20:39:02 ]
- ドロー4!
- 324 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:01:52 ]
- 最近、SQLってことばをよき聞きますが
これってどんな人がどんな時に使うんでしょうか? ぐぐって調べてもイマイチ意味が分かりませんし いったいどんな人が使ってるのか疑問です。 自分みたいにパンピーは知らなくても無問題でしょうか?
- 325 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:03:32 ]
- 最近、HTMLってことばをよき聞きますが
これってどんな人がどんな時に使うんでしょうか? ぐぐって調べてもイマイチ意味が分かりませんし いったいどんな人が使ってるのか疑問です。 自分みたいにパンピーは知らなくても無問題でしょうか?
- 326 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 18:51:05 ]
- 最近、クラウドコンピューティングってことばをよき聞きますが
これってどんな人がどんな時に使うんでしょうか? ぐぐって調べてもイマイチ意味が分かりませんし いったいどんな人が使ってるのか疑問です。 自分みたいに頭がクラウドな香具師は知らなくても無問題でしょうか?
- 327 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 20:53:00 ]
- 企業がマスゴミをだますときに使う
っつーかスレ違い
- 328 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:49:10 ]
- 正規表現を導入することでミッション クリティカルなシステムから
モバイル アプリケーションまで対応できる高い信頼性を備えた アプリケーションを構築することができます。 正規表現で企業内に存在する多数のデータを統合し、全社員がデータを活用できる ビジネス インテリジェンス基盤として堅牢で実績のあるハイパーバイザーを構築し 不要なリスクやオーバヘッドを回避できます。 正規表現の仮想インフラストラクチャ機構にはデータを安定して管理するさまざまな機能はもちろん、 データを活用・分析する機能まで、すべての機能がオールインワンで備わっているます。 高いスケーラビリティとバランスのとれたトータルクオリティーを活用することにより あなたの快適ライフをサポートします。
- 329 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:58:55 ]
- OBICの中の人乙
- 330 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 09:29:54 ]
- >>328
ユーのランゲージはファンタスティックね
- 331 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 10:15:52 ]
- ルー柴乙
- 332 名前:デフォルトの名無しさん [2010/07/14(水) 22:16:49 ]
- ●環境
vb.net ●したいこと 3文字以上の繰り返し表現を抽出 ●サンプル 例文1)死にたい死にたい死にたい死にたい死にたい 結果1)死にたい 例文2)筋肉バスターと阿修羅バスター 結果2)バスター ってのを正規表現でやるのは無理でしょうか・・・
- 333 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 00:06:01 ]
- 例文3) 阿修羅像と筋肉バスターと阿修羅バスターとジェットコースター
こういうときはどういう結果になって欲しいの 処理系側に頼るにしてもあんまりロジック考えたくない
- 334 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 00:54:48 ]
- >>332
英語ならともかく日本語じゃ無理じゃないか 形態素解析 単語 頻度 なんかでぐぐるといいかも
- 335 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 03:49:25 ]
- >>333
> 阿修羅像と筋肉バスターと阿修羅バスターとジェットコースター 「阿修羅」 「バスターと」 じゃね?
- 336 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 04:52:36 ]
- 部屋とYシャツと私
- 337 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 07:44:51 ]
- ヘアとワイセツとタワシ
- 338 名前:デフォルトの名無しさん [2010/07/15(木) 08:16:33 ]
- 女子高生と機関銃と私
- 339 名前:デフォルトの名無しさん mailto:sage [2010/07/15(木) 09:16:17 ]
- 中国と韓国と北朝鮮
- 340 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 10:14:07 ]
- >>316
phpならsplit("\]\]\[\[", str)で配列に分割して 最初と最後の要素から"[["と"]]"を取り除いた方が早いんじゃない? 正規表現にこだわる理由は何だろう >>339 処理結果:特定アジア
- 341 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 10:53:38 ]
- '[[hoge]] fuga [[piyo]]' みたいな入力に弱いのと直感的じゃないからじゃまいか
できれば「文字列を左から走査していき「[[ と ]] に囲まれた文字列」を すべて拾い上げる」ように書きたいところ というわけで preg_match_all に "\[\[(.*?)\]\]" を渡すとかどうだろ PHP知らないんで適当だが
- 342 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 12:05:18 ]
- >316です。
ありがとうございます。 実際には [[hoge]]今日は[[fuga]]いい[[tenk]]天気です みたいに間に文字は入るので、正規表現でしか出来ない(効率の面で)と判断しました。 この中のhoge、fuga、tenkiのみを配列の中に入れたかったのです。 結局preg_match_allで "/\[{2}[0-9A-Za-z]*\]{2}/"とする事で解決しました。
- 343 名前:デフォルトの名無しさん mailto:sage [2010/07/18(日) 02:24:03 ]
- >>335
「スター」は抽出しないのか?
- 344 名前:デフォルトの名無しさん mailto:sage [2010/07/18(日) 02:30:15 ]
- >>343
それを抽出するなら「スターと」「ターと」も必要じゃないか?
- 345 名前:デフォルトの名無しさん mailto:sage [2010/07/18(日) 02:38:40 ]
- ちゃんと作ったらもっと色々でてきそうだなw
- 346 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 18:08:06 ]
- /**
コメント **/ // コメント 上記のコメント箇所で、コメント内の各一文字を「_」に置き換える方法はあるでしょうか? コメント行を削除せずに、一度コメントを省いてからソース検索をしたいと思っておりまして。 ____↓ _____↓ ____↓ _______↓
- 347 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 18:12:00 ]
- /\/[\/*].+(\n|*\/)/_/s
- 348 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 18:15:53 ]
- 実際のプログラムだと運がよければできるぐらいだな。
コメントかどうか判断がつきにくい文字列リテラルとか あるんで病的なケースに完全に対応するのは難しい。 多少誤爆があってよければ適当にやりゃできるだろ。 正規表現といっても使い方はエディタや言語によって 違うので何を使ってやりたいかを決めてそっちのスレで 聞いたほうがいいかも。
- 349 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 18:16:18 ]
- >>346
while ((c=getchar()) != EOF) { if (c == '/') { c = getchar(); if (c == '/') { putchar('_');putchar('_'); while (c=getchar()) != '\n') putchar('_'); } else if (c == '*') { LOOP: putchar('_');putchar('_'); while (c=getchar()) != '*') putchar('_'); if ((c=getchar()) != '/') goto LOOP; putchar('_'); } } putchar(c); }
- 350 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 19:09:53 ]
- >>349
ありがとうございます。 正規表現だけではできないですかね…
- 351 名前:デフォルトの名無しさん mailto:sage [2010/07/26(月) 19:15:36 ]
- 正規表現ってマッチするだけだからねー。
- 352 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 10:00:25 ]
- >>351
あ、すみません。 正規表現とリプレイスの組み合わせでできないですかね? 以前どこかのサイトで見かけたことがあったのですが、 場所忘れ&これを実現した正規表現だったか覚えていなくて…
- 353 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 11:45:54 ]
- >>347
これだと1コメントで「_」になってしまいます。 コメントが10文字ある場合は「_」も10個ほしいです。 先読み、戻り読みを駆使してうまくやっていたような気がしたんですが、 すみません、思い出せないです。
- 354 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 12:01:28 ]
- PHPならpreg_replaceとかあるが・・・。
- 355 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 12:09:56 ]
- 検索にひっかからなくするという目的なら1文字になっちゃってもいいと
思うんだけどね。不必要に問題を複雑にしてるような。
- 356 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 14:23:36 ]
- (//|\G).+?(?=.*$)でうまくいくと思ったがちょっとおかしい
a // b で a ____ になると思ったが ______ になってしまう なぜ\Gが行頭に引っかかるのだ! ちなみにjavaです
- 357 名前:デフォルトの名無しさん mailto:sage [2010/07/27(火) 19:15:52 ]
- いや \G は文字列先頭にもマッチするもんだろう。
- 358 名前:デフォルトの名無しさん mailto:sage [2010/08/02(月) 11:52:25 ]
- >>346
「コメントを省いてからソース検索」するのが目的なのに 「コメントが10文字ある場合は「_」も10個ほしい」理由がわからない 他に目的があるのなら全部書き出して最終的に何がしたいか明示すべき
- 359 名前:デフォルトの名無しさん mailto:sage [2010/08/02(月) 13:23:24 ]
- >>358
そうですねf^^; やりたいことはソース中の文字列で日本語コメントを抽出です。 その際、検索結果の行番号を元のソースに合わせたいです。 複数行コメントをカットしてしまうとずれが生じるので、全てスペース(改行は変換せず)を考えています。 かなり前にこのスレッドで答えをもらったと思うのですが、それを忘れてしまいまして
- 360 名前:デフォルトの名無しさん mailto:sage [2010/08/02(月) 17:24:38 ]
- >>359
> その際、検索結果の行番号を元のソースに合わせたいです。 「コメントが10文字ある場合は「_」も10個ほしい」理由がわからない
- 361 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 15:50:50 ]
- 仕様がわからない状態でコーディングはできない
- 362 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 17:33:47 ]
- 自分が何をしたいのか、を他人にうまく伝えられない人
- 363 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 17:40:10 ]
- >「コメントが10文字ある場合は「_」も10個ほしい」理由がわからない
わからんのなら、おとなしくすっこんでろよw 仕様は>>346で明確に示してあるだろ。これ読んでもわからんの? わかる人が答える。わからない人は指をくわえて黙って見ている。 これが掲示板の作法だろ。
- 364 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 17:45:16 ]
- >>346だけ読んで理由がわかったらエスパーすぎる
行番号を維持するだけでなく桁数/文字数も維持したいのだろう
- 365 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 20:10:42 ]
- エスパーも何も、これ以上わかりやすい説明は無いと思うが
- 366 名前:デフォルトの名無しさん mailto:sage [2010/08/03(火) 20:47:16 ]
- せめて文字列リテラル中にコメントと紛らわしい文字列は
ないぐらいは仮定しないととんでもなく難しい気がするな。 あとこういうのを間違わずにやろうとすると結構大変。 // hogehoge /* hogehoge /* hogehoge // hogehoge */ hogehoge
- 367 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 07:41:17 ]
- >>362
むしろ自分が何をしたいのかさえ自分で理解できていないレベル
- 368 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 07:48:43 ]
- >>366
コメントについてはネストしたものを正規表現だけで取り扱うのは不可能と 「詳説 正規表現」に書いてあるけどな その例はネストしていないけど
- 369 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 11:49:47 ]
- >>368
そんなもん複数行モードで(/\*.*?\*/|//.*$)だろ… ここで質問した俺が馬鹿だった それじゃ一生答えが導けないよ
- 370 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 11:56:56 ]
- /* ここからコメント /* ネスト */ ここもコメント */
こういうのをなんとかするのは普通の正規表現の範囲では無理。
- 371 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 12:02:01 ]
- 文字列中に改行があってもマッチさせることは正規表現で可能でしょうか?
例えば something を検索したいとすると some\nthing、so\nmething, someth\ning などもマッチした、と判定したいんです。 今はこんな感じで処理しています。 「改行の位置を記憶→改行を全削除→文字列のマッチ→改行をもう一度挿入」 これが正規表現でできると楽になるので方法がわかる方いたらどうか教えてください。 使っている言語はJAVAですが、 他の言語の正規表現でもできるかどうか教えてもらえると助かります。
- 372 名前:デフォルトの名無しさん mailto:sage [2010/08/04(水) 12:38:56 ]
- >>369
それで適当な固定文字列に置き換えるだけなら簡単なんだけど 文字数を保存して間を_にしたいとかいうから面倒なわけです。 perlならeval使えるから加工するプログラム書けば一発ですが、ただの エディタの置換機能だとそうもいかん場合も多いんじゃねーの? 何を 使ってるのかも示されてないのでなんともいえんけどさ。 $str = qq{ // hogehoge /* hogehoge /* hogehoge // hogehoge */ hogehoge }; $str =~ s%(/\*(.*?)\*/)|(//([^\n]*))%($1 ne '')? ('/*'.to_underscore($2).'*/'): ('//'.to_underscore($4))%gse; print $str; sub to_underscore { my($s) = @_; $s =~ s/\S/_/g; return $s; }
- 373 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 07:56:23 ]
- >>369
要求仕様を先に確認しろ >>371 処理系のよっては改行文字を無視するモードがある Javaはどうだったかな
- 374 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 09:10:16 ]
- >>371
perlなら undef $/ だったかな
- 375 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 09:17:10 ]
- >>371
s\n?o\n?m\n?e\n?t\n?h\n?i\n?n\n?g
- 376 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 10:42:50 ]
- ふざけないでください
- 377 名前:デフォルトの名無しさん mailto:sage [2010/08/10(火) 22:29:01 ]
- Perlで前方一致の中に正規表現を使うことってできますか?
/(?<=.*_number=)\d*/のような感じでやりたいのですが・・・
- 378 名前:デフォルトの名無しさん mailto:sage [2010/08/10(火) 23:25:35 ]
- >>377
やって見りゃVariable length lookbehind not implementedになるのはすぐわかるだろ。 この例だと.*は余計なので取り除いて /(?<=_number=)¥d*/ にすればいいと思うが。
- 379 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 06:32:21 ]
- >>378
ありがとうございます、できないんですね・・・ では、/(?<=x_.*_number=)\d*/のように書きたい場合は他に書き方はあるでしょうか?
- 380 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 07:10:06 ]
- \d*を見つけられればいいって感じなら
/(x_.*_number=)(\d*)/ みたいにすれば?
- 381 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 07:17:20 ]
- >>380
ありがとうございます。 \d*を見つけるだけでなく、$&に取り出したいです。
- 382 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 08:39:22 ]
- perlなら¥K使えば?
perl -e '"x_hoge_number=100"=~/x_.*_number=¥K¥d*/ and print $&'
- 383 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 13:52:06 ]
- $&じゃなきゃダメなの?数字欲しいだけなら
/x_.*_number=(\d*)/ で$1見るのが楽チンな気がするんだけど。
- 384 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 20:18:38 ]
- >>382
>>383 数字だけ取り出せれば良かったので$1を使うことにしました。 ありがとうございました。
- 385 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 17:59:53 ]
- ●正規表現の使用環境
.net Framework 2.0 - 3.5 (C#) ●検索か置換か? 検索 ●説明 artist, titleの各グループの文字列を取得したい ●対象データ Artist - Title ●希望する結果 artist = Artist title = Title よろしくおねがいします。
- 386 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 18:44:28 ]
- 正規表現の詳しいサイトとか知りませんでしょうか?
ずぶの素人なので、どこのサイトで勉強したら良いのか分りません。
- 387 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 18:55:38 ]
- 適当なテキストエディタ入れて適当な正規表現解説サイト見て
適当に入力して試してたら数分で理解できるよ
- 388 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 19:12:44 ]
- >>387
適当厨ww
- 389 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 19:16:28 ]
- 右も左もわからないんならテンプレのここでいいんじゃないか
funcchan.blog16.fc2.com/ >>385 こういうこと? 違ってるならもっと具体的な入力データとほしい結果の例を挙げて using System.Text.RegularExpressions; ... string[] words = Regex.Split("Artist - Title", " - "); string artist = words[0]; string title = words[1];
- 390 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:04:02 ]
- >>389
Artist, Album, Titleが含まれている文字列からそれらを正規表現で抽出したいです。 例えば 山田耕筰 - 赤とんぼ を (?<artist>.*?) - (?<title>.*?) みたいな感じで。 元の文字列がどういう形式か不定なので、Splitはあまり使いたくないのですが・・・
- 391 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:18:42 ]
- Artist や Title に ' - ' が含まれたりする形式だと困るよね。
- 392 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:44:27 ]
- うん、" - " がフィールドの区切りとして使えないのなら無理じゃない?
それぐらいは保証されてると思って>>389を書いた 自分だったら " - " が文字列に2つ以上入ってたら不正な入力として受け付けないか 許される状況であれば脇によけておいて後で手作業で処理するよ
- 393 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:44:49 ]
- それは人間が見ても判別困難ですし、考慮していません。
とりあえず (?<artist>.*) - (?<title>.*?) にしたところ希望の動作は得られましたが、 Artist - Title そのものがグループ(グループ名なし)として抽出されています。 これは解決できますか?
- 394 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:47:02 ]
- よくわかんないから C# のコード貼ってちょ
- 395 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:47:19 ]
- おっと、>>393は>>391宛です。
- 396 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:47:59 ]
- >>393
解決って何よ 希望の動作したならそれで十分でしょ
|
|