从Python中的字符串中删除特定的模式?

时间:2019-04-19 05:58:28

标签: python regex string substring

我有一个字符串,例如

  

'这是一个不错的字符串,末尾有25.6“英寸的大小。'

双引号前的数字可以是浮点数或任何长度的整数。我想删除空格和双引号之间的所有内容。现在,我正在尝试使用.find()函数来获取双引号和最后一个空格的索引,然后删除这些索引之间的每个符号。有没有更聪明的方法?

1 个答案:

答案 0 :(得分:1)

我们可以在此处尝试使用re.sub

input = ' This is a nice string with some size in inches at the end 25.6" '
output = re.sub(r'\s+\d+(?:\.\d+)"\s*$', '', input)
print(output)

This is a nice string with some size in inches at the end

正则表达式模式\s+\d+(?:\.\d+)"\s*$表示:

\s+       match one or more spaces
\d+       match one or more digits, followed by
(?:\.\d+) an optional decimal component
"         inches unit sign
\s*       possible trailing whitespace, until
$         the end of the string