当前位置: 首页 > 面试题库 >

如何在python中标点之前而不是标点之后删除空格

史骏祥
2023-03-14
问题内容

相对的Python新手在这里。我有一个无法修改的程序输出的文本字符串。对于讨论,可以说:

text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"

我想删除标点符号前的空格,但不删除第二个空格。我一直在尝试使用正则表达式,并且我知道可以使用match =’\ s [\?。!\“] \
s’作为搜索词来匹配想要的实例。

x=re.search('\s[\?\.\!\"]\s',text)

re.sub是否可以用删除的前导空格替换搜索词?关于如何进行的任何想法?


问题答案:

在要 保留 的文本周围放置一个组,并在替换模式中按数字引用该组:

re.sub(r'\s([?.!"](?:\s|$))', r'\1', text)

请注意,我使用了r''原始字符串,以避免必须使用太多的反斜杠。但是,您不需要添加太多。

我还针对以下空间调整了匹配项;现在,它匹配空格或字符串的结尾。

演示:

>>> import re
>>> text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"
>>> re.sub(r'\s([?.!"](?:\s|$))', r'\1', text)
"This text. Is to test. How it works! Will it! Or won't it? Hmm?"


 类似资料:
  • 问题内容: 我想使用一个开关在网页上放置段落标签。 我使用after伪元素: 现在,我需要从页面中删除此CSS代码。 如何轻松做到这一点? 我要补充一点: jQuery已在页面上使用 而且我不想包含或删除包含CSS的文件。 问题答案: p:after { content: none; } none 是将内容(如果指定)设置为 空 的官方值。

  • 为什么两个 标记之间有空格?当我设置 标记的宽度时,它不起作用。我将其设置为 ,但两个 标记之间仍有空格。如何从 标记中删除空格? 以下是HTML和CSS代码: null null

  • 问题内容: 我有一些Java(5.0)代码,可以从各种(缓存的)数据源构造DOM,然后删除不需要的某些元素节点,然后使用以下方法将结果序列化为XML字符串: 但是,由于要删除几个元素节点,所以最终的序列化文档中最终会有很多额外的空格。 有没有一种简单的方法可以在将DOM序列化为String之前(或同时)从DOM中删除/折叠多余的空格? 问题答案: 您可以使用XPath查找空文本节点,然后以编程方式

  • 问题内容: 我已经在Jquery中完成了此操作,但希望在Javascript中实现而不依赖任何库。 问题答案: 以下代码应该执行与您的函数完全相同的操作。 不过,我要指出的是,如果是包裹在任何元素,你只得到的的该元素,因此,如果它是一个简单的标签,你会只换行文本节点内与(那是什么,顺便说一下? )。 你也有一个bug,你是分配text到node.textContent ? node.textCon

  • 问题内容: 我有一个以许多空格开头的文本字符串,介于2和4之间。 删除前导空格的最简单方法是什么?(即删除某个字符之前的所有内容?) 问题答案: 该方法将删除以字符串开头的前导空格,换行符和制表符: 编辑 正如balpha在注释中指出的那样,为了 仅从 字符串开头删除空格,应使用:

  • 问题内容: 我有一个类似的清单 这应该变成 我只想删除标点符号,使字母和数字保持原样。标点是常数。我知道这很简单,但是我有点喜欢python所以… 谢谢,giodamelio 问题答案: 假设您的初始列表存储在变量x中,则可以使用以下命令: 删除空字符串: