首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获复杂名称

捕获复杂名称
EN

Stack Overflow用户
提问于 2016-05-21 14:21:24
回答 1查看 78关注 0票数 6

我的数据:

代码语言:javascript
复制
Caterina Guonçallvez braçeyro 
Francisco Ro[dr]í[gueJz luveyro
Johao de Miranda calçeteyro 
Lucas Martinz Mal-Cuzinhado, braçeyro 
Francisquo d[e] Arruda braçeyro 
Francisquo de Miranda braçeyro 

-first名姓

带有-first和J (brakets识别)

带有连字符的-first名称

带有粒子的-first名称

带有粒子的-first姓氏

预期产出

代码语言:javascript
复制
Caterina Guonçallvez
Francisco Ro[dr]í[gueJz
Johao de Miranda
Lucas Martinz Mal-Cuzinhado
Francisquo d[e] Arruda
Francisquo de Miranda
  • 名字以大写字母开头
  • 名字的最后一部分后面是空格(或逗号加空格)和一个以小写字符开头的单词,如“bra”或“cal”(人的工作)。 数据<- readLines(“剪贴板”,编码= "latin1")

我试过的是:

代码语言:javascript
复制
^([a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð])\w+[A-Z ,.'-]\w+

给予

安东尼奥·戈麦斯

卡特琳娜·瓜恩

弗朗西斯科·罗

乔德

弗朗西斯科d

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-21 14:32:26

模式(([A-Z][\w\[\]-]+|de|d\[e\])\s?)+返回:

代码语言:javascript
复制
'Caterina Guonçallvez '
'Francisco Ro[dr]í[gueJz '
'Johao de Miranda '
'Lucas Martinz Mal-Cuzinhado'
'Francisquo d[e] Arruda '
'Francisquo de Miranda '

这假设您正确地设置了区域设置。

regex匹配字母组(和连字符),以大写字母或"de“开头,后面跟着可选的空格。这意味着您需要剥离字符串以删除尾随空格。

编辑:证明它在R中工作:

代码语言:javascript
复制
> Sys.setlocale("LC_ALL","en_us.UTF-8")
> library(stringr)
> x <- "Caterina Guonçallvez braçeyro "
> str_match(x, '(([A-Z][\\w\\[\\]-]+|de|d\\[e\\])\\s?)+')
     [,1]                    [,2]           [,3]         
[1,] "Caterina Guonçallvez " "Guonçallvez " "Guonçallvez"
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37364091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档