2015-07-21 166 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"