Pythonre.sub公司()怪异

2024-09-27 19:23:55 发布

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

我对Python很陌生,实际上这是我的第一个脚本。在

我正在努力处理Python的正则表达式。特别是re.sub()

我有以下代码:

variableTest = "192"
test = re.sub(r'(\$\{\d{1,2}\:)example.com(\})', r'\1' + variableTest + r'\2', searchString, re.M )

通过这个,我尝试在searchString中匹配host": "${9:example.com}",并用服务器名或IP地址替换{}。在

如果variableTest包含IP,则失败。我得到以下错误: sre_constants.error: invalid group reference

我用variableTest等于“127.0.0.1”,“1”,“192”,“192.168”来测试它127.0.0.1“有效,其余的则不行。如果我给其他人加上一个字母,它也能起作用。在

variableTest是一个用type(variableTest)验证的字符串

我完全不明白为什么会这样。在

如果我删除替换字符串中的r'\1',它也可以工作。r'\1'将包含${\d}:,其中{}是一个介于1和999之间的数字。在

任何帮助将不胜感激!在


Tags: 字符串代码testipre服务器脚本com
2条回答

问题是,在variableTest中放置一个IP将导致如下替换字符串:

r'\18.8.8.8\2'

如您所见,第一个组引用是组18,而不是组1。因此,re抱怨无效的组引用。在

在本例中,您希望改用^{} syntax

^{pr2}$

产生例如r'\g<1>8.8.8.8\g<2>'。在

在re.sub公司(pattern,repl,string,count=0,flags=0)

这是的语法re.sub公司()

您调用标志re.M的方式应该类似于flags=re.M,否则python会将其视为count=re.M

试试看,因为这是我唯一能决定的事

还请给出一个示例,说明您的searchString变量可能包含哪些内容

相关问题 更多 >

    热门问题