正则表达式刮痧名称

时间:2014-07-01 15:35:20

标签: regex

我一直试图从数据列表中提取姓名

数据看起来像这样

Seller: Jim Vaughan 
Clicks ordered: 100 
Clicks received: 115 
Optin: 43.91% 
Sales: 2 
Tier1: 80% 
I'm happy with the results, the solo paid for itself will be back for more! 

我想从中获取名称

我试过这个

[a-zA-z]+[\b]{1}[a-zA-z]+[\b]{1}[a-zA-z]+

但那并没有奏效。请问有些人帮我弄清楚如何从中获取名字?

3 个答案:

答案 0 :(得分:0)

以下正则表达式与SELLER:Seller:Seller Name:

之后的名称完全匹配
(?<=Seller:\s|SELLER:\s|Seller Name:\s).*?\b[A-Z][a-z]+\s[A-Z][a-z]+\b

DEMO

答案 1 :(得分:0)

你永远不应该假设名字跟随specific pattern

在您的示例中,搜索Seller:并在此之后捕获所有内容:

^(?<=Seller: )(.*)$
               \1     (replacement)

如果您的语言不支持后视(如Javascript),请同时捕获Seller:部分,然后只引用\2元素:

(Seller: )(.*)$
   \1      \2          (replacement)

Example

答案 2 :(得分:-1)

我认为这可能会这样做

[A-Z][a-z]+ [A-Z][a-z]+$

这将匹配以一个大写字母的模式结尾的字符串,后跟一个或多个小写字母,后跟一个空格,然后再次为该第二个名称重复该模式。