- 1 名前:デフォルトの名無しさん [2013/12/17(火) 14:19:52.00 ]
- Regular Expressionスレです。
質問する場合は必ず実装言語や処理系ソフトウェア名を示してください。 前スレ Regular Expression(正規表現) Part11 toro.2ch.net/test/read.cgi/tech/1362913813/ 天ぷら等2以降
- 2 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 14:21:56.13 ]
- スルーされにくい質問のテンプレと例
●Regular Expressionの使用環境 Java1.5 ●検索か置換か? 検索 ●説明 各行の1番目のAまでを検索したい ●対象データ ABCA BCAA CABA ●希望する結果 ABCA ^ BCAA ^^^ CABA ^^ ※ ^ はアンダーラインだそうな ^^;
- 3 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 14:25:36.11 ]
- ◆関連サイト
正規表現メモ www.kt.rim.or.jp/~kbk/regex/regex.html Perl正規表現雑技 www.din.or.jp/~ohzaki/regex.htm Regular Expression(Riue ちゃんの正規表現講座) www.sixnine.net/regexp/ 正規表現パズル www.geocities.jp/oraclesqlpuzzle/regex/ 詳説 正規表現 www.oreilly.co.jp/books/9784873113593/ 正規表現プログラミングFAQ capslockabcjp.kitunebi.com/faq.html JScript 正規表現の概説 msdn.microsoft.com/ja-jp/library/28hw3sce%28v=VS.80%29.aspx .NET Framework 正規表現言語要素 msdn.microsoft.com/ja-jp/library/az24scfc%28v=vs.80%29.aspx 【 初心者 】 正規表現 【 入門 】 funcchan.blog16.fc2.com/
- 4 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 14:28:55.56 ]
- ◆関連スレ
[UNIX板] 正規表現 pc12.2ch.net/test/read.cgi/unix/1039165754/ [WebProg] 正規表現道場 Part2 kohada.2ch.net/test/read.cgi/php/1348048723/ ◆前スレ [1] pc8.2ch.net/test/read.cgi/tech/1062152374/ [2] pc8.2ch.net/test/read.cgi/tech/1131028296/ [3] pc11.2ch.net/test/read.cgi/tech/1156413899/ [4] pc11.2ch.net/test/read.cgi/tech/1186030400/ [5] pc12.2ch.net/test/read.cgi/tech/1212498448/ [6] pc12.2ch.net/test/read.cgi/tech/1241537764/ [7] hibari.2ch.net/test/read.cgi/tech/1268979408/ [8] hibari.2ch.net/test/read.cgi/tech/1301067486/ [9] toro.2ch.net/test/read.cgi/tech/1323566370/ [10] toro.2ch.net/test/read.cgi/tech/1340383120/ [11] toro.2ch.net/test/read.cgi/tech/1362913813/
- 5 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 15:28:30.72 ]
- 乙
- 6 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 15:42:08.77 ]
- スレ建ておつ
- 7 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 16:58:38.41 ]
- >>3
前回不備のあったリンクが直ってるな
- 8 名前:デフォルトの名無しさん [2013/12/17(火) 20:55:54.43 ]
- APAスタイルで書かれた参考文献から各フィールドを抜き出したいんだけど、正規表現でやると楽?
著者不明や日付不明、その他タイトルがあったりなかったりするけども。 Perlで最終的にデータベースに流し込みたい。
- 9 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 21:09:33.90 ]
- APAスタイルってなに
- 10 名前:デフォルトの名無しさん [2013/12/17(火) 21:33:24.69 ]
- 江南スタイルのことです。
- 11 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 21:37:33.08 ]
- 海外の論文読んだらAPAで書いてあるやつ結構あるだろ
- 12 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 21:44:01.17 ]
- なんだ。
論文読んだことのない奴には 分からない話か。
- 13 名前:デフォルトの名無しさん [2013/12/17(火) 22:24:05.27 ]
- APAスタイル調べてみたけど難しそう
切り分けと判定は別にしたほうがいいような
- 14 名前:デフォルトの名無しさん [2013/12/17(火) 22:41:19.96 ]
- ●Regular Expressionの使用環境
Perl ●検索か置換か? 検索 ●説明 ミドルネームを含む名前も、ミドルネームを含まない名前も分解して抽出したい また、名前の区切りはスペースやドットなど色々なものに対応したい ●対象データ Edward Snowden Edward.Joseph.Snowden エドワード・スノーデン エドワード=ジョセフ=スノーデン ●希望する結果 (値を入れているわけではなく、$1〜$3に入っていて欲しいものです) $1 = "Edward" $2 = "" $3 = "Snowden" $1 = "Edward" $2 = "Joseph" $3 = "Snowden" $1 = "エドワード" $2 = "" $3 = "スノーデン" $1 = "エドワード" $2 = "ジョセフ" $3 = "スノーデン"
- 15 名前:デフォルトの名無しさん mailto:sage [2013/12/17(火) 23:59:19.63 ]
- >>14
Part11スレへどうぞ
- 16 名前:デフォルトの名無しさん [2013/12/18(水) 00:11:20.15 ]
- >>14
どうしても$1〜$3に入ってなきゃダメかね? my $fname; my $mname; my $lname; if ( $buf =~/([a-zA-Z]*)[\s\.・==]([a-zA-Z]*)[\s\.・==]*([a-zA-Z]*)/ ){ $fname = $1; if (length($3)==0){ $lname = $2; }else{ $mname = $2; $lname = $3; } }
- 17 名前:デフォルトの名無しさん mailto:sage [2013/12/18(水) 00:13:22.40 ]
- >>14
先ずは正規化して、どれかのルールに置き換えた方がいいと思う。
- 18 名前:デフォルトの名無しさん mailto:sage [2013/12/18(水) 00:22:55.22 ]
- >>16
日本語は?
- 19 名前:デフォルトの名無しさん mailto:sage [2013/12/18(水) 00:45:13.94 ]
- sub namechk{
$buf=shift; #引数として名前を受け取る if ($buf=~/(.+)(\s|\.|=|・)(.+)(\s|\.|=|・)(.+)/){ return ($1,$3,$5); }elsif ($buf=~/(.+)(\s|\.|=|・)(.+)/){ return ($1,"",$3); } } こっちのほうがいい。
- 20 名前:デフォルトの名無しさん [2013/12/18(水) 00:58:54.76 ]
- 正規化しろ
- 21 名前:デフォルトの名無しさん [2013/12/18(水) 01:01:51.51 ]
- 正規化しろ
- 22 名前:デフォルトの名無しさん mailto:sage [2013/12/18(水) 01:12:12.27 ]
- 正規表現縛りな奴って何考えて生きてんの?
- 23 名前:デフォルトの名無しさん mailto:sage [2013/12/18(水) 01:42:16.31 ]
- 正規化したら1行余計なものが増えるじゃん
sub namechk{ $buf = shift; $buf =~s/(\s|\.|=|=|・)/"."/meg; if ( $buf =~/(.+)\.(.+)\.(.+)/ ){ return ( $1 , $2 , $3 ); }elsif ( $buf =~/(.+)\.(.+)/ ){ return ( $1 , "" , $2 ); } }
|

|