python-3.x 删除双引号内的所有文本

ogsagwnx  于 2023-01-14  发布在  Python
关注(0)|答案(2)|浏览(186)

我正在处理Python中的一些文本,希望去掉文本中出现在双引号中的所有文本。我不确定如何做到这一点,希望您能提供帮助。下面是一个可重复性最低的示例,供您参考。提前感谢您。

x='The frog said "All this needs to get removed" something'

所以,我想得到的基本上就是'The frog said something',方法是删除上面x中双引号中的文本,我不知道该怎么做。再次感谢。

hfyxw5xn

hfyxw5xn1#

使用正则表达式替换:

import re

x='The frog said "All this needs to get removed" something'
res = re.sub(r'\s*"[^"]+"\s*', ' ', x)
print(res)
The frog said something
  • \s*-匹配可选空白字符
  • "-按原样匹配"字符
  • [^"]+-匹配除"以外的任何字符(通过^符号确保)一个或多个
col17t5w

col17t5w2#

快速修复假设"在字符串中是平衡的,即是偶数,并且双空格是不相关的。

x = 'The frog said "All this needs to get removed" something'

x_new = ''.join(x.split('"')[::2]).replace('  ', ' ')

最后,可以使用str.count检查这些条件:

if x.count('"') % 2 != 0:
   raise Exception('Double quotes are not balanced')

if x.count("  ") > 0:
   raise Exception('Double spaces are present')

相关问题