Python 如果不是数字,请在逗号之间添加空格

Python 如果不是数字,请在逗号之间添加空格,python,regex,Python,Regex,我目前正在使用Python对语料库进行预处理,该语料库将用于执行自然语言处理,然后进行分类。我对使用任何库作为NLTK都不感兴趣。在我学习的过程中,这次我更喜欢自己做 问题是,如果逗号前面或后面没有数字,我必须在句子中的逗号之间加一个空格: Input: "My car costs $10,000." Output: "My car costs $10,000." Input: "Oh, I forgot my keys." Output: "Oh , I forgot my keys."

我目前正在使用Python对语料库进行预处理,该语料库将用于执行自然语言处理,然后进行分类。我对使用任何库作为NLTK都不感兴趣。在我学习的过程中,这次我更喜欢自己做

问题是,如果逗号前面或后面没有数字,我必须在句子中的逗号之间加一个空格:

Input: "My car costs $10,000."
Output: "My car costs $10,000."

Input: "Oh, I forgot my keys."
Output: "Oh , I forgot my keys."
到目前为止,我得到的是:

re.sub(r"(,+)", r' \g<1> ', sentence)

你要找的正则表达式是

(?=,)(?<!\d)
(?=,)(?
工作正则表达式示例:


它是一个零宽度匹配,因此您只需使用
(空格)进行回复即可。

您要查找的正则表达式是:

(?=,)(?<!\d)
(?=,)(?
工作正则表达式示例:


它是一个零宽度匹配,因此您只需使用
(空格)进行回复即可。

您要查找的正则表达式是:

(?=,)(?<!\d)
(?=,)(?
工作正则表达式示例:


它是一个零宽度匹配,因此您只需使用
(空格)进行回复即可。

您要查找的正则表达式是:

(?=,)(?<!\d)
(?=,)(?
工作正则表达式示例:


这是一个零宽度匹配,因此您只需使用
(空格)进行回复,就这样。

使用负向前看和向后看:

>>> r = re.compile(r'(?<!\d)(,)(?!=\d)')
>>> r.sub(r' \1', "My car costs $10,000.")
'My car costs $10,000.'
>>> r.sub(r' \1', "Oh, I forgot my keys.")
'Oh , I forgot my keys.'

>>r=re.compile(r'(?使用负向前看和向后看:

>>> r = re.compile(r'(?<!\d)(,)(?!=\d)')
>>> r.sub(r' \1', "My car costs $10,000.")
'My car costs $10,000.'
>>> r.sub(r' \1', "Oh, I forgot my keys.")
'Oh , I forgot my keys.'

>>r=re.compile(r'(?使用负向前看和向后看:

>>> r = re.compile(r'(?<!\d)(,)(?!=\d)')
>>> r.sub(r' \1', "My car costs $10,000.")
'My car costs $10,000.'
>>> r.sub(r' \1', "Oh, I forgot my keys.")
'Oh , I forgot my keys.'

>>r=re.compile(r'(?使用负向前看和向后看:

>>> r = re.compile(r'(?<!\d)(,)(?!=\d)')
>>> r.sub(r' \1', "My car costs $10,000.")
'My car costs $10,000.'
>>> r.sub(r' \1', "Oh, I forgot my keys.")
'Oh , I forgot my keys.'
>>r=re.compile(r'(?试试这个:

re.sub(r"(?<![\d])(,+)(?![\d])", r' \g<1> ', sentence)
re.sub(r)(?试试这个:

re.sub(r"(?<![\d])(,+)(?![\d])", r' \g<1> ', sentence)
re.sub(r)(?试试这个:

re.sub(r"(?<![\d])(,+)(?![\d])", r' \g<1> ', sentence)
re.sub(r)(?试试这个:

re.sub(r"(?<![\d])(,+)(?![\d])", r' \g<1> ', sentence)

re.sub(r“(?Oh regex
:”)
…现在进行一些无意识的伪解析。也许只需搜索a',获取索引并检查i+1和i-1是否为数字。如果不是,则用','替换','该如何处理
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?如果它变成
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?哦,regex
:')
…现在进行一些无意识的伪解析。也许只需搜索a',获取索引并检查i+1和i-1是否为数字。如果不是,则用','替换','该如何处理
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?如果它变成
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?哦,regex
:')
…现在进行一些无意识的伪解析。也许只需搜索a',获取索引并检查i+1和i-1是否为数字。如果不是,则用','替换','该如何处理
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?如果它变成
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?哦,regex
:')
…现在进行一些无意识的伪解析。也许只需搜索a',获取索引并检查i+1和i-1是否为数字。如果不是,则用','替换','该如何处理
这辆车要花10000美元,但是,哦,我忘了带钥匙。
?如果它变成
这辆车要花10000美元,但是,哦,我忘带钥匙了。
?这正是我想要的我在找。谢谢你的推荐。@Trein:当然。很高兴我能帮忙。这正是我在找的。谢谢你的推荐。@Trein:当然。很高兴我能帮忙。这正是我在找的。谢谢你的推荐。@Trein:当然。很高兴我能帮忙。这正是我在找的。谢谢你的推荐。@Trein:当然。Gl我可以帮忙。