Nelson, Craig T. 形式的名称需要拆分为
AN Nelson
FN Craig
IT C.T.
IT表示首字母,注意第一个首字母是FN,名字的第一个字母。
我已经在正则表达式中有一堆模式。对于这个,我怀疑正则表达式不会这样做,原因是:你不能切片反向引用
import re
name = r'Nelson, Craig T.'
pat = r'([^\W\d_]+),\s([^\W\d_]+\s?)\s(([A-Z]\.?)+)\s?$'
rep = r'AN \1\nVN \2\nsf \3\n'
split = re.sub(pat, rep, name)
print(split)
将产生:
AN Nelson
FN Craig
IT T.
理想情况下,我会以某种方式分割 \2,添加一个句号并将 \3 粘贴在它后面。我认为这对于正则表达式是不可能的,我应该使用字符串操作,但是,这不是我第一次在这里学到一个我没有从文档中推断出来的技巧。(多谢你们。)