除了单词之外,如何在字符之间添加 space?

How do you add space between characters except for a word?

我有一个字符串:

string = "abc(word)def(word)oiu"

我需要输出为:

spaced = "a b c (word) d e f (word) o i u"

使用re.sub的一种方式:

s = "abc(word)def(word)oiu"
re.sub("\(.+?\)", lambda x: x.group(0).replace(" ", ""), " ".join(s))

输出:

'a b c (word) d e f (word) o i u'

这将首先在所有字符之间放置空格,并删除括号之间的空格。

保持简单,避免在基本情况下使用正则表达式 像这样:

s = "abc(word)def(word)oiu"
w = '(word)'

spaced_out = f' {w} '.join(' '.join(text) for text in s.split(w))

您可以使用模式 '\(.+?\)|.' 将输入分隔为应由空格连接的子字符串,然后使用 ' '.join() 插入这些空格。

我们寻找 (,后跟一个或多个字符,然后是 )。我们使用 ? 以便我们在看到的下一个右括号处停止,而不是字符串中的最后一个 )。如果我们不能匹配那个模式,我们就取下一个字符:

import re
data = "abc(word)def(word)oiu"
result = ' '.join(re.findall(r'\(.+?\)|.', data))
print(result)

这输出:

a b c (word) d e f (word) o i u

这适用于任何给定的字符串。

string = "abc(word)def(word)oiu"
skip_word= "(word)"     
spaced_string = " ".join([char for char in string])
spaced_word =  " ".join([char for char in skip_word])

spaced = spaced_string.replace(spaced_word, skip_word)