如何检查 Python 中的每个单词
How to check every word in Python
我想替换字符串中的单词。但我的问题是,当我想将 wordA 替换为 wordB 并将 wordB 替换为 wordA 时。它们相互替代。
我可以
line.split()
不过那样的话我就白输了-space。那么解决这个问题的正确方法应该是什么
分三步完成:
import re
my_string = "some words i other words oraz last words"
# choose some phrase that does not appear in the original string
temp = "##########"
# replace the word 'i' with that temp string
my_string = re.sub(r'\bi\b', temp, my_string)
# replace the word 'oraz' with 'i', like normal
my_string = re.sub(r'\boraz\b', 'i', my_string)
# replace the temp string with 'oraz'
my_string = re.sub(temp, 'oraz', my_string)
print(my_string)
# 'some words oraz other words i last words'
或者,如果您使用 lambda 作为替代,并且有条件地选择 return 'i'
或 'oraz'
,则可以在一个表达式中完成:
my_string = "some words i other words oraz last words"
my_string = re.sub(
r'\b(i|oraz)\b',
lambda rg:'i' if rg.group(0) == 'oraz' else 'oraz',
my_string
)
print(my_string)
# 'some words oraz other words i last words'
我想替换字符串中的单词。但我的问题是,当我想将 wordA 替换为 wordB 并将 wordB 替换为 wordA 时。它们相互替代。 我可以
line.split()
不过那样的话我就白输了-space。那么解决这个问题的正确方法应该是什么
分三步完成:
import re
my_string = "some words i other words oraz last words"
# choose some phrase that does not appear in the original string
temp = "##########"
# replace the word 'i' with that temp string
my_string = re.sub(r'\bi\b', temp, my_string)
# replace the word 'oraz' with 'i', like normal
my_string = re.sub(r'\boraz\b', 'i', my_string)
# replace the temp string with 'oraz'
my_string = re.sub(temp, 'oraz', my_string)
print(my_string)
# 'some words oraz other words i last words'
或者,如果您使用 lambda 作为替代,并且有条件地选择 return 'i'
或 'oraz'
,则可以在一个表达式中完成:
my_string = "some words i other words oraz last words"
my_string = re.sub(
r'\b(i|oraz)\b',
lambda rg:'i' if rg.group(0) == 'oraz' else 'oraz',
my_string
)
print(my_string)
# 'some words oraz other words i last words'