我对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}:
,其中{
任何帮助将不胜感激!在
问题是,在
variableTest
中放置一个IP将导致如下替换字符串:如您所见,第一个组引用是组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变量可能包含哪些内容
相关问题 更多 >
编程相关推荐