- 1 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:07:28 ]
- 正規表現(Regular Expression)スレです。
質問する場合は実装言語や処理系ソフトウェア名を示しておくと話が早いです。 前スレ 正規表現 Part4 pc11.2ch.net/test/read.cgi/tech/1186030400/
- 499 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:50:00 ]
- >>498
(\w+)+ みたいな感じになるから遅いんだろうねえ。 \s+\w+(\.\w+)*$ でどうか。
- 500 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 22:50:51 ]
- キャプチャするから
\s+(\w+(\.\w+)*)$ こうか。
- 501 名前:498 mailto:sage [2008/12/06(土) 23:56:46 ]
- >>499,500
ありがとうございます、見違えるように早くなりました (\w+)*は良くても(\w+)+は遅くなるんですね
- 502 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 03:52:21 ]
- >>501
> (\w+)*は良くても(\w+)+は遅くなるんですね んー、そういうことではないぞ。 \.? は有っても無くてもいいけど、(\.\w+)* の \. は必要でしょ。 (\.?\w+)* にしたらやっぱり遅くなるはず。 (\w+\.?)+ は「.xxxxxx」だけにも何通りもマッチの仕方があるけど、 (\.\w+)*は1通りしかマッチできない。この違いだよ。
- 503 名前:498 mailto:sage [2008/12/07(日) 10:07:49 ]
- >>502
? と +(もしくは*) の組み合わせが最悪だったわけですか 今度から注意します
- 504 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 13:53:02 ]
- >>503
なんかまだ誤解してるっぽいな。 *)* みたいに、カッコの内側の最後に繰り返し指定(*やら+やら)があって、 その外側すぐにも繰り返しがあるのが問題(になることが多い)。 498が最初に書いたようなマッチしないデータを食わせたときに、 バックトラック回数がとんでもなくでかくなって遅くなる(可能性がある)。
- 505 名前:498 mailto:sage [2008/12/07(日) 15:05:16 ]
- >>504
理解が遅くてすみません、ようやく分かりました 丁寧にありがとうございました
- 506 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 20:39:26 ]
- 正規表現が手に入れた強力すぎる「構文理解(マッチ)能力」って、
外国語の翻訳に使えそうな気がするんだけど、その観点での研究って進んでないの?
- 507 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:38:53 ]
- そりゃ無理でしょ。
yaccやbisonで実用になる翻訳ソフトが作れるって話は聞かないから。
- 508 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:53:34 ]
- >>506
正則言語はそんなに広いクラスじゃないぞ
- 509 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:56:51 ]
- >>506
一般の自然言語と正規言語では言語のクラスとして天と地ほどの差があるよ。 たとえば、多くの自然言語は無限回のネストを許容するが、これは正規文法で表せない。
- 510 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 08:03:55 ]
- お前らちゃんと日本語話せよ何言ってるか分かんねぇよ
- 511 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 11:28:01 ]
- お前が勉強不足なだけだ。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 11:45:24 ]
- なんて面白みの無い、むしろマイナスなレスなんだ
- 513 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 18:38:31 ]
- ●正規表現の使用環境
PHP4.4以降 ●検索か置換か? 検索後、個々に置換 ●説明 ユーザーが入力したhtmlデータ内に 特定の文字で囲まれたものを変換したい。 %test%や%nullpo%など。 ●対象データ フォームで送信されたhtmlデータ <html> <head> </head> <body> %adv% あいうえおかきくけこ<br> %adv% </bnody> </html> ●希望する結果 %adv%を発見した位置を返し、それを指定された文字列で置換する。 %adv%は全て同じではなく、別の文字をそれぞれ割り当てたい。 よろしくお願いします。
- 514 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 19:41:55 ]
- >>513
>%adv%は全て同じではなく、別の文字をそれぞれ割り当てたい。 この時点で、正規表現でやるのには無理がある。 状態を持つには何らかのプログラミング言語で。 HTMLならJavaScriptか。
- 515 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 21:03:49 ]
- PHP使ってるからテンプレートエンジン使ったらどうだろうか
- 516 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 02:35:21 ]
- よくわかんないけど、%date%→2008/12/12 %name%→田中みたいにして
%name%様への%date%のお知らせです。 が 田中様への2008/12/12のお知らせです。みたいになるようにしたいんじゃないの? 正規表現っていうか普通に置換すればいいだけじゃないの?%name%→%date%とかなると置換順序によってはおかしくなるから、 そこは%name%を%date%で置換したいなら%%date%%と入力しといて後で%%を%に(ryみたいにすればいいと思うけど。 >>514は何が言いたいのか良くわからない。 >>515に同意。Smartyとか使えば全部やってくれるから楽だけど…
- 517 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 09:24:04 ]
- >>516
>%adv%は全て同じではなく、別の文字をそれぞれ割り当てたい。 この文章を素直に解釈すると、同じ「%adv%」でも状況に応じて 「こんにちは」にも「さようなら」にもなるって事じゃないのかな。 で、そういう状況依存的な内部状態を持つ操作は、 変数や条件判断文のあるプログラミング言語でないと不可能。 何か変?
- 518 名前:506 mailto:sage [2008/12/13(土) 22:59:58 ]
- >>507-509
正規表現の(現時点での)限界があることはわかりました。 が、自然言語の「(ある種の)典型的な表現」を滑らかに翻訳するという狭いクラスのタスクに対しては 正規表現がその強力な威力を発揮できると今でも思っています。
- 519 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 00:02:11 ]
- 限界とか威力とか意味わかんね。
正規表現なんて正規文法を別の記号で書き直しただけじゃん。 数学的に厳密な定義のあるものなんだから、 明日になって威力が変わったりしないよ。
- 520 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 02:58:28 ]
- 正規表現を、どんな夢でもかなえてくれる魔法の呪文とでも勘違いしてないか?
- 521 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 08:53:37 ]
- 文法の表現力では
正規文法 < 文脈自由文法 < 文脈依存文法 < 解析表現文法
- 522 名前:デフォルトの名無しさん [2008/12/15(月) 00:24:39 ]
- ABCを含まない行にマッチさせたい場合
^(?!.*ABC) ←OK (?!.*ABC) ←NG となるのでしょうか? 上記の違いが分かりません
- 523 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 00:38:48 ]
- >>522
.*がABCを食うから。
- 524 名前:デフォルトの名無しさん [2008/12/15(月) 00:49:37 ]
- ^があるとなぜ食えないんですか?
- 525 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 01:52:03 ]
- /^(?!.*ABC)/の場合、まず/^/が文字列の頭にマッチする。
そこから後ろ(即ち元の文字列全体)が、/^(.*ABC)/にマッチしなければ、全体としてマッチする。 /(?!.*ABC)/の場合は、どんな文字列であっても末尾にマッチする。 なぜなら文字列の末尾から後ろ(即ち空文字列)は/^(.*ABC)/にマッチしないから。
- 526 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 15:17:08 ]
- >>517
あーなるほどね。1回目の%adv%では「こんにちは」、2回目の%adv%では「さようなら」にしたい、とかか。 そりゃ正規表現じゃ無理だわ。いや、限定的な状況ならいけるかもしれないけど。
- 527 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 12:11:49 ]
- 含まない行、のような指定は、できるなら -v オプションとか
正規表現より上のレイヤでやったほうがよい。
- 528 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 12:32:43 ]
- それはスレ違い
- 529 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 19:58:47 ]
- いいんじゃない?
正規表現だけでは何もできないんだから。 perl とか、テキストエディタとか、そのた言語と組み合わせないと。
- 530 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:12:40 ]
- perlとかテキストエディタとかその他の言語のサポートまではしてられないってことだろ。よう知らんけど。
- 531 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:43:09 ]
- >>527はどこまで正規表現を使うべきかという立派な正規表現ネタに見えた。
正規表現で実現可能なことは無理してでも正規表現を使え なんていう愚かなスレでもないだろうw
- 532 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 09:10:18 ]
- 実用的な解と、パズル的な解か。
- 533 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 14:32:23 ]
- 例えば、 ABC と DEF という文字列があったとき、
ABCの場合 ABC (123) DEFの場合 DEF (345) という形に置き換えるのは可能でしょうか? また、可能ならどのように書いたらいいでしょうか
- 534 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 14:53:58 ]
- >>533
できる。正規表現は /ABC/ /DEF/ 意地悪はさておき、ABCやDEFを検出するのは正規表現だけど 置換をするのはそれぞれの「実装言語や処理系ソフトウェア」だから >>5のテンプレ埋めてくれないと答えられない。
- 535 名前:533 mailto:sage [2008/12/22(月) 15:54:12 ]
- すみません
訂正します ●正規表現の使用環境 Jane Style Version 3.01 ●検索か置換か? 検索後に置換 ●説明 文字列にマッチさせた後、マッチした文字列ごとに指定された文字列を後ろに 追加させて置換させたい ●対象データ @ ABC A DEF ●希望する結果 @ ABC (123) A DEF (345)
- 536 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 16:25:00 ]
- 普通の置換でよくね?
- 537 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 16:51:55 ]
- すみません、説明が足りませんでした
この二件だけの場合は二つ表現を書けばいいですが、 後ですぐに置換したい文字列を追加できるよう、(ABC|DEF)のように orか何かでまとめて作りたいと思っています それは可能でしょうか それともやはり一つ一つ書いたほうがいいでしょうか
- 538 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 17:24:29 ]
- >>537
まとめようにも法則性が無いが。
- 539 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 17:27:44 ]
- てか、Jane Style って専ブラだよね?
どういう機能で何をしようとしてるのかがわからないとどうにもアドバイスのしようが... (このスレは基本的には、grepやawkやPerlやPythonやJavaの正規表現のスレなので)
- 540 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 17:41:12 ]
- <rx2>(?<=ABC)[TAB] (123)[TAB]msg
<rx2>(?<=DEF)[TAB] (345)[TAB]msg
- 541 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 20:35:21 ]
- これですね。ちゃんと書いてあります。
www.monazilla.org/index.php?e=65
- 542 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 21:36:27 ]
- >>538
あまり正規表現について詳しくないもので やはりちょっと無理がありましたね・・・ >>539 すみません 少し勘違いをしていました >>540 有難うございます! すごくスッキリしていていいですね 参考にさせて頂きます
- 543 名前:デフォルトの名無しさん [2008/12/27(土) 19:09:30 ]
- perl で
abc-def-1234-ghi-jkl これから abc-def を取りたい 1234は数字が4文字です 1234の前を取るのはどうすればいいですか?
- 544 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:14:41 ]
- 「取る」とは?
「抽出したい」 → 結果として abc-def が欲しい 「削除したい」 → 結果として -1234-ghi-jkl が欲しい どっち? できれば >>5 を参考に。
- 545 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:31:16 ]
- もっと高級言語っぽい表記で書けるといいのになぁ。
- 546 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:31:35 ]
- (ちょっと変えました)
prelで ●検索か置換か? 検索 ●説明 12-34は数字が2文字ハイフン2文字です (\d{2}-\d{2} こうかな?) 12-34の前を抽出するにはどうすればいいですか? 12-34の前の部分に数字が2文字は無いです。 ●対象データ abc3-d5ef-12-34-ghi-jkl ho-1ge=+-e67-89+fuga++--jkl ●希望する結果 abc3-d5ef- ho-1ge=+-e
- 547 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 20:59:42 ]
- >>546
12-34でもその一般化したパターンでも使ってマッチングさせてから 特殊変数 $` や@- を参照するなり他の手段で抜き出すなりすればよろしかろ?
- 548 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 23:26:09 ]
- >>546
カッコ ( ) をつかえばいいよ。
- 549 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 11:20:42 ]
- >>546
print /(.*)(?=\d{2}-\d{2})/ ? "match:[$1]\n" : "unmatch.\n" for qw( abc3-d5ef-12-34-ghi-jkl ho-1ge=+-e67-89+fuga++--jkl );
- 550 名前:デフォルトの名無しさん [2009/01/01(木) 12:55:59 ]
- 単純にたくさんのテキストファイルから目当てのキーワードのある行を
正規表現で検索したい場合、Windows環境だとどのツールが便利・一般的なの? 秀丸かな? Unixだとgrepコマンドがあるけど…
- 551 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:29:08 ]
- >>550
一般がどうかはしらないけど自分は秀丸やxyzzyの機能を使ってる
- 552 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:32:37 ]
- grepでいいよ
- 553 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:44:45 ]
- XP以降だと標準でfindstrコマンドがあるね
Cygwinを入れるのもいいし、各種テキストエディタに頼るのもいい でも一番の検索ツールは、 | 何について調べますか? | ┌────────────┐ | | | | | | | └────────────┘ | [ オプション(O) ] [ 検索(S) ] | `──────────┐ ┌─── , '´l, ..| ./ , -─-'- 、i_ |/ __, '´ ヽ、 ',ー-- ● ヽ、 `"'ゝ、_ ', 〈`'ー;==ヽ、〈ー- 、 ! `ー´ ヽi`ヽ iノ ! / r'´、ヽ `´ヽノ
- 554 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 13:51:57 ]
- | 何について調べますか?
| ┌────────────┐ | | おまいの消し方 | | | | | └────────────┘ | [ オプション(O) ] [ 検索(S) ] | `──────────┐ ┌─── , '´l, ..| ./ , -─-'- 、i_ |/ __, '´ ヽ、 ',ー-- ● ヽ、 `"'ゝ、_ ', 〈`'ー;==ヽ、〈ー- 、 ! `ー´ ヽi`ヽ iノ ! / r'´、ヽ `´ヽノ
- 555 名前:550 mailto:sage [2009/01/01(木) 14:13:35 ]
- さんくす、やっぱりそのへんかぁ。
- 556 名前:551 mailto:sage [2009/01/01(木) 14:17:19 ]
- このスレのせいで550がイルカの虜になってしまった
なんて親切なスレなんだ
- 557 名前:553 mailto:sage [2009/01/01(木) 14:17:59 ]
- 名前間違えた、>>556は553
- 558 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:43:20 ]
- 2007ではイルカ出なくなってるよね
- 559 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 11:46:47 ]
- 冴子先生がいい
- 560 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 16:37:56 ]
- スターウォーズのジャージャービンクス
Office のイルカ 大ヒットメーカーが調子に乗りすぎて生み出してしまった 世界の2大うざキャラ。
- 561 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 17:31:36 ]
- なんかわかるw
- 562 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 11:11:00 ]
- perlで下のような場合にマッチさせたいのですが、どのようにすればいいのでしょうか?
<[a-z]+ lang="ja">.*?</[a-z]+> 最初の[a-z]+と最後の[a-z]+は同じタグを指定したいのですが、 このままだと、</a>や</b>といった終了タグが先に引っかかってしまい、 いびつな形でマッチしてしまいます。
- 563 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 17:22:05 ]
- >>562
正規表現一発じゃキツい スキャナを書くか、素直にHTMLパーザ使った方が
- 564 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 17:36:17 ]
- >>562
バックリファレンスかな <([a-z]+) lang="ja">.*?</\1> こんな感じで
- 565 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 17:36:39 ]
- 単純にそういう条件だと\1使えばいいんじゃ? いろいろやるつもりなら
結局パーサ使った方が楽ってことになりそうだけどね。 $s = q{<hoge lang="ja"><a>hogehoge</a><b>hoge</b></hoge>}; print $& if $s =~ m{<([a-z]+) lang="ja">.*?</\1>};
- 566 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 17:54:09 ]
- >>564-565
> <([a-z]+) lang="ja">.*?</\1> でうまくいきました。 残念ながら、XMLパーサの使い方がわからない。勉強しないとなぁ… 目的は和英中が混在しているxmlから日本語の部分だけ抽出したかったので、 今回はこれで十分です。 XMLとHTMLタグが混在した形式だったんですが、何故か、HTMLタグにlang設定が されていて途方にくれていました。
- 567 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 18:39:02 ]
- たとえば <xxx lang="ja"><xxx>foobar</xxx></xxx> というときにちゃんと取り出せないねえ
本当にちゃんとやろうとしたら正規表現だと無理だな
- 568 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 12:59:56 ]
- XMLは文脈自由文法だからPCREの拡張とか使わないと無理
- 569 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 15:34:24 ]
- Perlなら再帰的なやつもイケる
ちゃんとチェックしとらんが local our@A; my$a="jjj<unko>an<unko>hoge</unko>gf</unko>"; local our$b=qr{(.*?(<unko>(??{$b})</unko>)(?{push@A,$2}))*.*?}; $a=~$b; print join($/,@A),$/;
- 570 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 13:53:47 ]
- 正規表現のライブラリを自作してるのですが参考になるサイトはないでしょうか。
容易な拡張性を確保するためにオブジェクト指向を使って実装してます。 例えば inputstr[k] == pattern[k] ? ではなくて pattern.can_eat(inputstr[k]) のようなpatternをレシーバ(インスタンス)としたかんじです。 現在はグループの中にグループがあるとどうやって解決するか悩んでいます。 (ab(cd|ef)gh) などで、一応JAVAで実験してます。
- 571 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 13:59:04 ]
- pattern.can_eat(inputstr[k]) ?
pattern.contains(inputstr[k]) ? などでboolean関数です。 性能は速いかどうかではなく、コンパクト・コードサイズ小さいなど目指しています(機能拡張はオブジェクト指向と同じくプラグインしますんで)。 構文木を作るとかではなく容易にスクラッチから書ける程度のコードサイズで、かつ動的に実行時に機能追加できると言うのが条件で作っています。
- 572 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 14:04:39 ]
- 他の言語の正規表現APIは参考にしてる?
OOならJava, Ruby, Python, .NETとあると思うけど
- 573 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:14:50 ]
- あれ?反応ないですね。
オブジェクト指向を使った実装だと構文木を使ったものよりもだいぶ簡単になる(見通しがよくなる)んですけど・・・ 多少コード量(というかクラス・ファイル数)は多くなるんですけど、やっぱりインタプリタは旧来式の構文木を使った実装しかやらないんでしょうか。
- 574 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:28:45 ]
- 何をしたいのかが伝わってないんだろう。
読んで、正規表現ライブラリを利用者に見せるためのAPIの話ではないの かも、という印象は持ったが、それ以上は考えるが面倒くさいのでス ルー。
- 575 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 02:07:17 ]
- もっぱら使う側が多いからじゃないのかな。特に不満もないし。。
鬼車のポジションを奪える可能性もあるからがんばって!
- 576 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 02:37:56 ]
- 参考になるサイトもないでどうやって頑張るんだよ!
3日ぐらい悩んで大体めどがたってきたから別にいいけど。
- 577 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:29:45 ]
- 要するにこういうことだろ。
いずれにしても、パターンの構文木()笑を作る必要はあるよ /(ab(cd|ef)gh)/.match("xabefgh") /ab(cd|ef)gh/.match("xabefgh") /ab/.match("xabefgh") /(cd|ef)gh/.match("efgh") /(cd|ef)gh/.match("efgh") /(cd|ef)gh/.match("efgh")
- 578 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 07:29:58 ]
- 途中で書き込んでしもた。めんどくせ
- 579 名前:デフォルトの名無しさん [2009/01/22(木) 11:45:20 ]
- ●正規表現の使用環境
prel ●検索か置換か? 置換 ●説明 特定タグ間のHTMLタグを全て削除する (<body>から</body>までのタグを全て削除) ●対象データ <html> <body> テスト<BR> <b>です。</b> </body> </html> ●希望する結果 <html> <body> テスト です。 </body> </html>
- 580 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 13:41:18 ]
- >>579
$html =~ s{(?<=<body>).+(?=</body>)} { (my $body = $&) =~ s/<.+?>//gs; $body; }es;
- 581 名前:デフォルトの名無しさん [2009/01/22(木) 14:08:55 ]
- >>579 のおかげで prel でぐぐっても perl が検索対象になることを知った
- 582 名前:581 mailto:sage [2009/01/22(木) 14:11:05 ]
- ごめん、正確には
prel 正規表現 など prel と何か別のキーワードでぐぐったとき prel は perl とみなされるっぽい
- 583 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 16:40:10 ]
- ワロタ
- 584 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 10:40:12 ]
- 余談になるけど、VBSの正規表現は、処理系の実務にも耐えられるくらいの機能は持ってるよ。
条件判定としての正規表現を使える事は、VBAユーザーにとってこれ以上無いほどのメリットだと思ってる。 俺もそんなに正規表現は詳しくはないけど、エクセルで使う目的を考えると、VBSの正規表現は非常に使い勝手が良い。 良くも悪くもシンプルなんだよね。 仕事で文字列操作やRDBみたいな使い方してる人ならば、絶対に覚えておいて損はないよ。 後方参照が表現できるようになって、世界が開けました。 どうでも良い話かもしれないけど、マジでお勧め。
- 585 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 10:40:37 ]
- 誤爆しました。すいません。
- 586 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:36:14 ]
- 文字列の中から名前を取り出したいのですがどうやって書けば良いでしょうか
- 587 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:08:31 ]
- 「名前」の定義は?
環境も。
- 588 名前:586 mailto:sage [2009/01/28(水) 00:46:35 ]
- 名前は人名です
環境はVB.NETです。
- 589 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:51:34 ]
- 人名の定義は?
- 590 名前:デフォルトの名無しさん [2009/01/28(水) 00:56:14 ]
- それを聞いてる
- 591 名前:479 mailto:sage [2009/01/28(水) 03:07:22 ]
- 形態素解析の領分だろうね。
どこまで固有人名を解析できるかは性能と元の文章次第だけど。
- 592 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 03:07:56 ]
- すまん、名前消したつもりが残ってた
- 593 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 06:56:44 ]
- 辞書も必要だな
- 594 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 10:19:24 ]
- 形態素解析までしなくても、日本全国の苗字と名前のテーブルを作って
「苗字+名前」で引っこ抜けばいいと思う
- 595 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 10:37:13 ]
- 「あや」と「あやの」みたいのをどう
扱うかとか考え出すとなにげに難しい
- 596 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:34:07 ]
- 英語と違って日本語は「わかち書き」をしないから難しいやろね。
- 597 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 18:51:36 ]
- (鈴木|佐藤|山田| ... )\s*(太郎|花子| ... )
- 598 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 19:16:08 ]
- >>586よ、別に煽って遊んでる訳じゃないぞ。
コンピュータにとって、言うは易いが行うは難しい要求なんだ。
- 599 名前:586 mailto:sage [2009/01/29(木) 01:12:20 ]
- レスありがとう
では郵便番号か都|道|府|県|市|区|町|村のある行から 5行以内にある行で、末尾に。や、のない7文字以内の行で その行の中には、も。もない文字列 これを抜き取ったら名前の可能性が高そうなのですが どうやって書けば良いでしょうか
|

|