regex 我如何检查字符串是否以句点结尾,或者句点后跟空格,或者它是否为空字符串?[duplicate]

bgtovc5b  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(139)
    • 此问题在此处已有答案**:

Python- how to verify if a string ends with specific string?(4个答案)
How to check if the string is empty?(25个答案)
Check if string contains only whitespace(11个答案)
12小时前关闭。

import re

def aaa(i):
    if(i == 0): a = ''
    elif(i == 1): a = 'Hola, como estás?.  '
    elif(i == 2): a = 'Yo estube programando algo'
    elif(i == 3): a = 'no esta mal ese celular, lo uso en la oficina.'

    return a

text, i_text = "", ""

for i in range(4):
    print(i)
    i_text = aaa(i)
    #HERE SHOULD BE THE REGEX OR SCORE VERIFIER LINE
    text = text + i_text + ". "

print(repr(text))  # --> output

只有当从示例函数aaa()接收到的字符串不是以句点.结尾的字符串,或者字符串只包含空格或直接什么都没有(就像第一个一样)时,我应该如何添加句点。
在这种情况下,不要使用不正确的分数获得此输出

'. Hola, como estás?.  . Yo estube programando algo. no esta mal ese celular, lo uso en la oficina.. '

正确的输出应为:

'Hola, como estás?. Yo estube programando algo. no esta mal ese celular, lo uso en la oficina.'

在每次迭代时检查每个i_text结尾处的点,而不是在使用print()之前的所有操作结束时检查,这一点非常重要

fcy6dtqo

fcy6dtqo1#

以下是一种方法:

text = ""
for i in range(4):
    i_text = aaa(i).rstrip()
    if i_text and i_text[-1] not in ".,?":
        i_text += "."
    text += f"{i_text} "
print(repr(text.strip()))

使用re接近import re,然后替换

if i_text and i_text[-1] not in ".,?":


一个二个一个一个

pftdvrlh

pftdvrlh2#

您可以使用str.rstrip()删除空格,并有条件地添加句点:

i_text = i_text.rstrip()
if len(i_text) > 0:
    i_text = ''.join([i_text, '.' i_text[-1] != '.' else '', ' '])
laximzn5

laximzn53#

您可以通过去掉空格并检查最后一个字符是否为句点来实现这一点:

i_temp = i_text.rstrip()

if i_temp == "" or i_temp[-1] != ".":
    text = text + i_text + ". "

i_text.rstrip()[-1]将获取字符串,删除 * 尾随 * 空格(rstrip())并获取最后一个字符([-1])。

相关问题