为了在大文本中查找名称,我有以下正则表达式
([A-Z][a-z]*)[\s-]([A-Z][a-z]*)
Run Code Online (Sandbox Code Playgroud)
这适用于像"Jack Oneill"或"John Guidetti"这样的普通人名字.但是我想找到一些拥有的东西,却找不到.喜欢:
Chandler Murial Bing
Gandalf the Gray
Pieter van den Woude
Run Code Online (Sandbox Code Playgroud)
我对正则表达式的有限知识似乎无法得到这种怀疑.谁能帮助我(请为此提供一个好的网站/书):)
Nic*_*ole 14
处理正则表达式问题的最佳方法是描述您要查找的匹配项(通常称为语法).
例如,根据您的问题,我可能会将其描述如下:
.(初始).如果这提供了与所需结果集相当接近的匹配(并且要清楚,对于名称,有很多变体,您将有误报或漏报),然后您开始构建表达式:
[A-Z]([a-z]+|\.)[a-z][a-z\-]+结果:
[A-Z]([a-z]+|\.)(?:\s+[A-Z]([a-z]+|\.))*(?:\s+[a-z][a-z\-]+){0,2}\s+[A-Z]([a-z]+|\.)
Run Code Online (Sandbox Code Playgroud)
比赛(粗体):
您好,我叫Chandler Muriel Bing.我有一个叫Pieter van den Woude的朋友,还有另一个朋友,AA米尔恩.Gandalf the Gray加入了我们.我们一起组成了朋友演员和船员.
问题:
| 归档时间: |
|
| 查看次数: |
16859 次 |
| 最近记录: |