替换句子中的触发词

时间:2017-01-07 09:32:18

标签: python string

我有以下数据:

 line = "This is a sample line"
 trigger_words = "sample"

我现在要做的是通过句子来查看该行是否包含触发词。如果是这种情况,请用#34;#"

替换它

之前我编写了以下代码,允许我在句子中找到trigger_word为

的第一个和最后一个数字
if trigger in line:
 index = line.index(trigger)

 index_begin = index + 1
 index_eind = index + len(trigger) + 1

但是现在我正在寻找一种方法来将句子中的部分从index_begin替换为index_end,使用"#"。

我是怎么做到这一点的?

2 个答案:

答案 0 :(得分:1)

您可以使用内置 str.replace来实现此目标:

>>> line = "This is a sample line"
>>> trigger_words = "sample"

## If you want to replace the word with single '#' 
>>> line.replace(trigger_words, '#')
'This is a # line'  # returned string


## If you want to replace the word with '#' equivalent to length of word   
#                                  v- to repeat '#' equal to length 
#                                  v  of 'trigger_words'
>>> line.replace(trigger_words, '#'*len(trigger_words))
'This is a ###### line'  # returned string

答案 1 :(得分:0)

python中的字符串实际上是list,因此您可以使用splice来利用字符串。如下所示:

line = line[:index_begin] + '#' + line[index_end:]

注意:如果使用此方法,请勿向索引添加1。