python正则表达式字符串串联vs li

2024-09-27 19:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图运行一个替换正则表达式,但我看到奇怪的行为。你知道吗

在一个循环中,我有:

var = "HELLO"
result = re.subn("\\b"+var+'\\b \\+ \\"', "sample_replacement_text", text)

这是行不通的,但是如果我取var的值并直接放入result = re.subn('\\bHELLO\\b \\+ \\"', "sample_replacement_text", text)

知道为什么吗?几个小时来我一直在伤心地挠头。你知道吗


Tags: sampletextrehellovarresult小时replacement
1条回答
网友
1楼 · 发布于 2024-09-27 19:25:33

我不知道你想用正则表达式实现什么,但它的作用是:

它查找一个模式,该模式以单词边界开始,然后是您的var单词,然后是另一个边界,然后是+,最后是"。下面是一个实际的例子:

import re
var = "HELLO"
result = re.subn("\\b"+var+'\\b \\+ \\"', "foo", 'word HELLO + " word more words')
print(result)

它正确地删除HELLO + ",并用foo替换它。如果您打算使用加号来进行进一步的连接,而不是使用文字,则不应对其进行转义。你知道吗

编辑:

对于我正在尝试做的更真实的示例,我有一个配置文件,它使用了一个占位符变量,我想用一个字符串文字替换它:

visibility = [
    # blah blah comment
    VAR + ":sample_package",
    VAR + "/some_other_path",        
],

运行替换

var = 'VAR'
re.subn("\\b"+var+'\\b \\+ \\"', "my_replacement", text)

应该让步

visibility = [
        # blah blah comment
        "my_replacement:sample_package",
        "my_replacement/some_other_path",        
],

但它没有改变

相关问题 更多 >

    热门问题