当前位置: 首页 > 知识库问答 >
问题:

正则表达式将“a.b”替换为“a.b”?[重复]

叶华皓
2023-03-14

我正在尝试将a. b类型的所有字符串更改为a. b。如果任何字符是大小写,它也应该有效。请注意,a.不应更改为a.\(空格)

我尝试过使用正则表达式这样做:

a = "a.b"
a = re.sub(r'[a-b]\.[a-b]', ' .', a)

输出应该是a. b,但它是.,因为它也替换了所有字符,而不是保留字符并在点后放置空格。

有人知道用Python怎么做这个吗?

编辑:我试图在两个句子之间加一个空格。但是,我不能使用<code>str。替换,因为在这种情况下它也会添加一个空格,比如1.5变成1.5。这不是我想要的。我试着做正则表达式,但没能成功。

此外,这必须适用于所有可能的句子,而不仅仅是a.b

共有1个答案

郎华皓
2023-03-14

您可以使用下面的< code>([abAB])\([abAB])

>>> import re
>>> s = ['a.b', 'A.b', 'a.B', 'A.B']
>>> [re.sub(r'([abAB])\.([abAB])', r'\1. \2', i) for i in s]
['a. b', 'A. b', 'a. B', 'A. B']

您的方法的问题是,您没有保存捕获组以用于替换的结果。

如果您希望它适用于整个字母表,您可以使用以下内容:

>>> s = 'billy.bob'
>>> re.sub(r'([a-zA-Z])\.([a-zA-Z])', r'\1. \2', s)
'billy. bob'
 类似资料:
  • 问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪

  • 问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。

  • 通过好奇心,有没有办法用Java Stream编写它?

  • Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提

  • 问题内容: 我目前正在将Web应用程序代码从PHP移植到JS。 我对此正则表达式有疑问。从PHP 这样使用 如何将其转换为在JS上工作? 先感谢您 问题答案: 没什么特别的。PHP regex语法与JavaScript中的语法非常相似: 您可以从 MDN的 本手册中找到有关JavaScript 中正 则表达式的更多信息:https : //developer.mozilla.org/en- US/

  • 我试图将js代码转换为java版本,但对正则表达式有点困惑:在js中,我有一个类似于:testString的表达式。拆分(“/(\w*\d)/g”) 我可以在java中使用什么等效语言?我试着用匹配器得到同样的结果。find()和split函数,但结果不一样。