繁体   English   中英

在python中将空格添加到某个字符串中

[英]Adding a space into a certain string in python

我的数据看起来像这样:

SMITH,JOHN, additional data delimited by commas
JONES,TOMMY, additional data delimited by commas
WILLIAMS, BILLY, additional data delimited by commas
etc.

我需要让它看起来像这样:

SMITH, JOHN, additional data delimited by commas
JONES, TOMMY, additional data delimited by commas
WILLIAMS, BILLY, additional data delimited by commas
etc.

注意前两个名字上逗号后面的额外空格。

我想我需要使用正则表达式来实现这一点,但它似乎不起作用。 我试过了:

grantor = grantor.replace(r'[A-Z],[A-Z]', r'[A-Z], [A-Z]')

但它并没有发生在我身上。 我错过了什么? 我只需要改变名称,其中有一个文本字符,一个逗号和一个文本字符紧挨着彼此。 列表中的其他名称是正确的,不需要更改。

str.replace不使用正则表达式。 你必须使用re模块

但由于您只是用逗号和空格替换逗号,因此您实际上并不需要正则表达式:

s = '''SMITH,JOHN
JONES,TOMMY
etc.'''

s = s.replace(',', ', ')

print(s)
# SMITH, JOHN
# JONES, TOMMY
# etc.

我只需要替换紧接在前面并以大写文本字符开头的逗号。

然后你可能想要使用正则表达式。 你将不得不使用re.sub

import re
s = 'FOO, SMITH,JOHN'

s = re.sub('([A-Z]),([A-Z])', r'\1, \2', s)
print(s)
# FOO, SMITH, JOHN

这使用引号将逗号周围的两个字符放入。 您还可以使用lookbehinds和lookaheads:

s = 'FOO, SMITH,JOHN'

s = re.sub('(?<=[A-Z]),(?=[A-Z])', ', ', s)
print(s)
# FOO, SMITH, JOHN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM