我想从这个字符串中提取所有非大写字母的文本:
a <- "NAME
Agricola, Johannes
ALTERNATIVNAMEN
Schneider, Johann; Schnitter, Johannes; Eisleben, Johannes; Agricola Eisleben, Johannes; Bauer, Hans
KURZBESCHREIBUNG
deutscher Reformator
GEBURTSDATUM
20. April 1494
GEBURTSORT
Eisleben
STERBEDATUM
22. September 1566
STERBEORT
Berlin"
为了提取"Agricola,Johannes",我尝试了如下内容:
# Name
name <- sub("\\s*ALTERNATIVNAMEN\\b.*", "", a)
cat(sub("NAME", "", name))
但我不知道该怎么继续下去。我的问题是,我不知道如何使用正则表达式来表达以下内容:“匹配名称之后的所有内容,直到ALTERNATIVNAMEN”。最后,我希望有7个变量作为角色对象保存个人数据。任何帮助都是非常感谢的!
发布于 2018-06-05 06:16:45
read.table(text=gsub("([[:upper:]])\\n","\\1:",a),sep=":")
V1 V2
1 NAME Agricola, Johannes
2 ALTERNATIVNAMEN Schneider, Johann; Schnitter, Johannes; Eisleben, Johannes; Agricola Eisleben, Johannes; Bauer, Hans
3 KURZBESCHREIBUNG deutscher Reformator
4 GEBURTSDATUM 20. April 1494
5 GEBURTSORT Eisleben
6 STERBEDATUM 22. September 1566
7 STERBEORT Berlin
然后,您可以选择所需的列
发布于 2018-06-05 05:30:29
您可以使用strsplit
,并在任意两个或两个以上大写字母的序列上拆分...
strsplit(a,"[A-Z]{2,}")
[[1]]
[1] ""
[2] "\nAgricola, Johannes\n"
[3] "\nSchneider, Johann; Schnitter, Johannes; Eisleben, Johannes; Agricola Eisleben, Johannes; Bauer, Hans\n"
[4] "\ndeutscher Reformator\n"
[5] "\n20. April 1494\n"
[6] "\nEisleben\n"
[7] "\n22. September 1566\n"
[8] "\nBerlin"
https://stackoverflow.com/questions/50689015
复制相似问题