删除引号之间不需要的空格
Remove unwanted spaces between quotations
有没有更优雅的方法来删除引号之间的空格(尽管使用这样的代码:
input = input.replace('" 12 "', '"12"')`)
来自这样的句子:
At " 12 " hours " 35 " minutes my friend called me.
问题是数字可能会改变,然后代码将无法正常工作。 :)
你可以使用正则表达式,只要你的引语是合理的:
re.sub(r'"\s*([^"]*?)\s*"', r'""', input)
模式读作“引号、任意数量的空格、不是引号的内容(捕获),后跟任意数量的空格和引号。替换就是您在引号中捕获的内容。
注意捕获组中的量词是勉强的。这样可以确保您不会捕获尾随空格。
您可以尝试使用正则表达式,如下所示:
"\s+(.*?)\s+"
这匹配任何长度的任何子字符串,包含任何不是换行符的字符,由空格和引号包围。通过将其传递给 re.compile()
,您可以使用返回的 Pattern
对象来调用 sub()
方法。
>>> import re
>>> string = 'At " 12 " hours " 35 " minutes my friend called me.'
>>> regex = re.compile(r'"\s+(.*?)\s+"')
>>> regex.sub(r'""', string)
'At "12" hours "35" minutes my friend called me.'
</code> 要求替换第一组,在本例中是 <code>.*?
匹配的字符串
这是我快速想出的解决方案,适用于您输入的任何数字。
input = 'At " 12 " hours " 35 " minutes my friend called me.'
input = input.split()
for count, word in enumerate(input):
if input[count] == '"':
del input[count]
if input[count].isdigit():
input[count] = '"' + input[count] + '"'
str1 = ' '.join(input)
print('Output:')
print(str1)
输出:
>>> Output:
>>> At "12" hours "35" minutes my friend called me.
有没有更优雅的方法来删除引号之间的空格(尽管使用这样的代码:
input = input.replace('" 12 "', '"12"')`)
来自这样的句子:
At " 12 " hours " 35 " minutes my friend called me.
问题是数字可能会改变,然后代码将无法正常工作。 :)
你可以使用正则表达式,只要你的引语是合理的:
re.sub(r'"\s*([^"]*?)\s*"', r'""', input)
模式读作“引号、任意数量的空格、不是引号的内容(捕获),后跟任意数量的空格和引号。替换就是您在引号中捕获的内容。
注意捕获组中的量词是勉强的。这样可以确保您不会捕获尾随空格。
您可以尝试使用正则表达式,如下所示:
"\s+(.*?)\s+"
这匹配任何长度的任何子字符串,包含任何不是换行符的字符,由空格和引号包围。通过将其传递给 re.compile()
,您可以使用返回的 Pattern
对象来调用 sub()
方法。
>>> import re
>>> string = 'At " 12 " hours " 35 " minutes my friend called me.'
>>> regex = re.compile(r'"\s+(.*?)\s+"')
>>> regex.sub(r'""', string)
'At "12" hours "35" minutes my friend called me.'
</code> 要求替换第一组,在本例中是 <code>.*?
这是我快速想出的解决方案,适用于您输入的任何数字。
input = 'At " 12 " hours " 35 " minutes my friend called me.'
input = input.split()
for count, word in enumerate(input):
if input[count] == '"':
del input[count]
if input[count].isdigit():
input[count] = '"' + input[count] + '"'
str1 = ' '.join(input)
print('Output:')
print(str1)
输出:
>>> Output:
>>> At "12" hours "35" minutes my friend called me.