我想创建一个工具,我可以自动解析一些文本。 我正在使用javascript和正则表达式。
例如,我有这样的文字:
Aa Aaa 1, Bb Bbb 2 and Cc Ccc 1
1 Institut xx Xx, Some University, Xxxx 14, US-10000 NewYork, USA; E-Mails: aa.aaa@edu.com; cc.ccc@edu.com
2 Institut zz Zzz, Some University2, Zzzz 20, US-10000 NewYork, USA; E-Mail: bb.bbb@edu.com
我想解析那些信息
对于每个作者(FirstName和LastName):
所以在我的例子中,我希望:
Aa Aaa - Institut xx Xx, Some University, Xxxx 14, US-10000 NewYork, USA - aa.aaa@edu.com
Bb Bbb - Institut zz Zzz, Some University2, Zzzz 20, US-10000 NewYork, USA - bb.bbb@edu.com
Cc Ccc - Institut xx Xx, Some University, Xxxx 14, US-10000 NewYork, USA - cc.ccc@edu.com
它看起来非常复杂,所以如果我认为我在一些简单的问题中将我的问题分开,请告诉我。
谢谢。
答案 0 :(得分:1)
这是可行的任务。
我没有使用JavaScript代码,但我希望SO的某个人能为您克隆以下Perl代码:
$_ = "\n\n" . $input;
1 while s/^(.*?\n?)\n{1,2}\s*([^\d]+)\s+(\d+)\s*?(?:\s*and|[,\n\s])(.*?)(?<=\n)(\3\s+)([^\n]*)(\n.*$|$)/$1$2 - $6\n\n$4$5$6$7/gs;
s/\n\n.*$//s;
print $_;
查看并测试Perl代码here。