在 python 中的句子中的特定单词前后添加星号
Adding asterisk before and after a particular word in a sentence in python
我想在句子中的特定单词前后添加两个星号“**”。例如,如果句子是“他喜欢在夏天玩板球”,目标词是 'cricket'。最终的输出字符串应该是“他喜欢在夏天玩**板球**”。
我无法明确地做到这一点。请建议我在 python.
中进行此字符串修改的方法
如评论所述,您可以使用 str.replace()。
s = "He enjoys playing cricket in summer"
print(s.replace('cricket', '**cricket**'))
如果你想要更通用的东西。
import re
def star_re(orig_string, star_string):
new_string, count = re.subn(f'({star_string})', r'****', orig_string)
return new_string
def star_replace(orig_string, star_string):
return orig_string.replace(star_string, f'**{star_string}**')
s = "He enjoys playing cricket in summer"
print(star_re(s, 'cricket'))
print(star_replace(s, 'cricket'))
正则表达式版本的唯一优点是您可以使其更适合仅匹配单词边界或其他内容。
这是根据用户输入的各种句子:
targetword = input('target word')
fullsentence = input('full sentence')
if targetword in fullsentence:
fullsentence = fullsentence.replace(targetword, f'**{targetword}**')
print(fullsentence)
# print(f'{fullsentence[0:fullsentence.index(targetword)]}**{targetword}**{fullsentence[fullsentence.index(targetword) + len(targetword) : len(fullsentence)]}')
else:
print('target word does not exist')
注意:我更改了 if 条件。我完全忘记了你可以在句子本身的开头或结尾使用那个确切的词。
*我按照其他评论者的建议,通过 .replace() 更改了添加星号的方式。看起来比我的版本好看。
python 中的每个 string
都有一个内置的 replace
方法,您可以使用该方法将特定短语替换为另一个短语
一般形式为:
string.replace(oldvalue, newvalue, count)
参数值:
Parameter
Description
Required?
oldvalue
The string to search for
Yes
newvalue
The string to replace the old value with
Yes
count
A number specifying how many occurrences of the old value you want to replace. Default is all occurrences
No
代码:
print("He enjoys playing cricket in summer".replace('cricket','**cricket**'))
或
my_string = "He enjoys playing cricket in summer"
print(my_string.replace('cricket','**cricket**'))
我想在句子中的特定单词前后添加两个星号“**”。例如,如果句子是“他喜欢在夏天玩板球”,目标词是 'cricket'。最终的输出字符串应该是“他喜欢在夏天玩**板球**”。 我无法明确地做到这一点。请建议我在 python.
中进行此字符串修改的方法如评论所述,您可以使用 str.replace()。
s = "He enjoys playing cricket in summer"
print(s.replace('cricket', '**cricket**'))
如果你想要更通用的东西。
import re
def star_re(orig_string, star_string):
new_string, count = re.subn(f'({star_string})', r'****', orig_string)
return new_string
def star_replace(orig_string, star_string):
return orig_string.replace(star_string, f'**{star_string}**')
s = "He enjoys playing cricket in summer"
print(star_re(s, 'cricket'))
print(star_replace(s, 'cricket'))
正则表达式版本的唯一优点是您可以使其更适合仅匹配单词边界或其他内容。
这是根据用户输入的各种句子:
targetword = input('target word')
fullsentence = input('full sentence')
if targetword in fullsentence:
fullsentence = fullsentence.replace(targetword, f'**{targetword}**')
print(fullsentence)
# print(f'{fullsentence[0:fullsentence.index(targetword)]}**{targetword}**{fullsentence[fullsentence.index(targetword) + len(targetword) : len(fullsentence)]}')
else:
print('target word does not exist')
注意:我更改了 if 条件。我完全忘记了你可以在句子本身的开头或结尾使用那个确切的词。
*我按照其他评论者的建议,通过 .replace() 更改了添加星号的方式。看起来比我的版本好看。
python 中的每个 string
都有一个内置的 replace
方法,您可以使用该方法将特定短语替换为另一个短语
一般形式为:
string.replace(oldvalue, newvalue, count)
参数值:
Parameter | Description | Required? | ||
---|---|---|---|---|
oldvalue | The string to search for | Yes | ||
newvalue | The string to replace the old value with | Yes | ||
count | A number specifying how many occurrences of the old value you want to replace. Default is all occurrences | No |
代码:
print("He enjoys playing cricket in summer".replace('cricket','**cricket**'))
或
my_string = "He enjoys playing cricket in summer"
print(my_string.replace('cricket','**cricket**'))