正则表达式中['+str(param)+']是什么意思

2024-03-28 09:01:43 发布

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

在学习python中的regex时,我遇到了下面的代码。 它是strip()的regex版本。你知道吗

import re

def REstrip(text, param=' '):
    mo = re.compile(r'^([' + str(param) + ']*)(.*?)([' + str(param) + ']*)$')
    result = mo.search(text)
    if (result != None):
        print(result.group(2))


text = input("Please input the text: ")
param = input("Please input the param: ")
REstrip(text, param)

输出:

Please input the text: 11221
Please input the param: 11
22

[' + str(param) + ']是什么意思(方括号中的' + + '代表什么?)你知道吗


Tags: the代码textimport版本reinputparam
2条回答

这意味着将传递给函数的“param”值转换为文本字符串数据类型,并将其用作正在计算的正则表达式的一部分。加号(+)将字符串连接在一起。你知道吗

让我们把它分解一下,例如:

prefix = '(['
suffix = ']*)'

expr = prefix + str(param) + suffix

mo = re.compile('^' + expr + '(.*)' + expr + '$')

因此,正如您所看到的,在方括号中不是+ +,只有两个字符串文字恰好以[结束,以]开始。你知道吗

另外,pro提示:将任意字符串注入regex并不十分安全,因此您可能希望改用re.escape(str(param))。你知道吗

相关问题 更多 >