gpt4 book ai didi

python - 切片正则表达式反向引用?诺坎多?

转载 作者:行者123 更新时间:2023-11-28 21:59:46 27 4
gpt4 key购买 nike

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 放在它后面。我认为这对于正则表达式是不可能的,我应该使用字符串操作,但是,这不是我第一次在这里学习我没有从 documentation 中推导出来的技巧。 . (谢谢大家。)

最佳答案

您可以像这样为第一个首字母再使用一组:

pat = r'([^\W\d_]+),\s(([^\W\d_])[^\W\d_]*\s?)\s(([A-Z]\.?)+)\s?$'
rep = r'AN \1\nVN \2\nIT \3.\4\n'

我还更正了 rep 变量中的缩写 sf 而不是 IT

关于python - 切片正则表达式反向引用?诺坎多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com