Regular Expression(正規表現) Part12at TECH
Regular Expression(正規表現) Part12 - 暇つぶし2ch2:デフォルトの名無しさん
13/12/17 14:21:56.13
スルーされにくい質問のテンプレと例

●Regular Expressionの使用環境
Java1.5

●検索か置換か?
検索

●説明
各行の1番目のAまでを検索したい

●対象データ
ABCA
BCAA
CABA

●希望する結果
ABCA
^
BCAA
^^^
CABA
^^

※ ^ はアンダーラインだそうな ^^;

3:デフォルトの名無しさん
13/12/17 14:25:36.11
◆関連サイト
正規表現メモ
URLリンク(www.kt.rim.or.jp)
Perl正規表現雑技
URLリンク(www.din.or.jp)
Regular Expression(Riue ちゃんの正規表現講座)
URLリンク(www.sixnine.net)
正規表現パズル
URLリンク(www.geocities.jp)
詳説 正規表現
URLリンク(www.oreilly.co.jp)
正規表現プログラミングFAQ
URLリンク(capslockabcjp.kitunebi.com)
JScript 正規表現の概説
URLリンク(msdn.microsoft.com)
.NET Framework 正規表現言語要素
URLリンク(msdn.microsoft.com)
【 初心者 】 正規表現 【 入門 】
URLリンク(funcchan.blog16.fc2.com)

4:デフォルトの名無しさん
13/12/17 14:28:55.56
◆関連スレ
[UNIX板] 正規表現
スレリンク(unix板)
[WebProg] 正規表現道場 Part2
スレリンク(php板)


◆前スレ
[1] スレリンク(tech板)
[2] スレリンク(tech板)
[3] スレリンク(tech板)
[4] スレリンク(tech板)
[5] スレリンク(tech板)
[6] スレリンク(tech板)
[7] スレリンク(tech板)
[8] スレリンク(tech板)
[9] スレリンク(tech板)
[10] スレリンク(tech板)
[11] スレリンク(tech板)

5:デフォルトの名無しさん
13/12/17 15:28:30.72


6:デフォルトの名無しさん
13/12/17 15:42:08.77
スレ建ておつ

7:デフォルトの名無しさん
13/12/17 16:58:38.41
>>3
前回不備のあったリンクが直ってるな

8:デフォルトの名無しさん
13/12/17 20:55:54.43
APAスタイルで書かれた参考文献から各フィールドを抜き出したいんだけど、正規表現でやると楽?
著者不明や日付不明、その他タイトルがあったりなかったりするけども。
Perlで最終的にデータベースに流し込みたい。

9:デフォルトの名無しさん
13/12/17 21:09:33.90
APAスタイルってなに

10:デフォルトの名無しさん
13/12/17 21:33:24.69
江南スタイルのことです。

11:デフォルトの名無しさん
13/12/17 21:37:33.08
海外の論文読んだらAPAで書いてあるやつ結構あるだろ

12:デフォルトの名無しさん
13/12/17 21:44:01.17
なんだ。
論文読んだことのない奴には
分からない話か。

13:デフォルトの名無しさん
13/12/17 22:24:05.27
APAスタイル調べてみたけど難しそう

切り分けと判定は別にしたほうがいいような

14:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/12/17 23:59:19.63
>>14
Part11スレへどうぞ

16:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/12/18 00:13:22.40
>>14
先ずは正規化して、どれかのルールに置き換えた方がいいと思う。

18:デフォルトの名無しさん
13/12/18 00:22:55.22
>>16
日本語は?

19:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/12/18 00:58:54.76
正規化しろ

21:デフォルトの名無しさん
13/12/18 01:01:51.51
正規化しろ

22:デフォルトの名無しさん
13/12/18 01:12:12.27
正規表現縛りな奴って何考えて生きてんの?

23:デフォルトの名無しさん
13/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 );
 }
}


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch