>问题示例:
str1 = "ur a sh * tty comment ."
我需要句子中的每个单词,并希望用sh***tty
替换sh * tty
(将单词中的空格替换为*
(
如果我尝试:
for word in s.split():
print(word)
我得到:
ur
a
sh
*
tty
comment
.
sh * tty
现在分为 3 个单词
sh
*
tty
但是我sh * tty
需要这个词,这样我就可以用*
替换空格并最终sh***tty
。
我不能简单地用*
替换空格.我只需要用*
替换一个空格,如果该空格在任何英语单词中(典型错误(。
我也试过:
s = "ur a sh * tty comment ."
makeBad = s.translate ({ord(c): "*" for c in " "})
但我不想替换分隔两个单词的空格。
您可以使用
import re
str1 = "ur a sh * tty comment ."
nw = r"[]*!@#$%^&()[{};:,./<>?\|`~=_+-]"
print( re.sub(rf'(S) {nw} (S)', r'1***2' , str1) )
请参阅 Python 演示。
在这里,模式将如下所示
(S) []*!@#$%^&()[{};:,./<>?\|`~=_+-] (S)
它匹配
(S)
- 组 1 (1
(:任何非空格字符- 一个空间
[]*!@#$%^&()[{};:,./<>?\|`~=_+-]
- 字符形式为集合:]*!@#$%^&()[{};:,./<>?|`~=_+-
- 一个空间
(S)
- 组 2 (2
(:任何非空格字符。