2015-07-21 123 views
0

我有格式化如下名称的文件:正则表达式匹配格式

Last, First Middle Initial 

在某些情况下,个人可能没有一个中间的初始

Last, First 

我想用一个常规的表达的顺序改变为

First Middle, Last name 

First, Last Name (when there is no middle initial) 

有人可以帮助完成这个表达式吗?

如何使用正则表达式为这些情况设置我的条件字段?我想设置一个if函数,如果名称字段格式等于两种可能性,它将使用各自的表达式来重新排列名称。我正在使用Spotfire客户端来执行此操作。

谢谢!

回答

2

实现:

import re 
R = re.compile(r"(\w+),\s+(\w+)(\s*\w*)") 

def convert(s): 
    return R.sub(r"\2\3, \1", s) 

和测试:

assert convert("Last, First Middle") == "First Middle, Last" 
assert convert("Last, First") == "First, Last"