Python:重新发布“关于芬德尔()"

2024-06-16 11:32:06 发布

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

string = "RegisterParameter uri wub {"
RegisterName = re.findall("RegisterParameter uri ([^ ]*) {",string)

print 'RegisterName is :',RegisterName

参见上述代码。这里我想通过正则表达式在字符串中找到寄存器名,即wub。我已经为此写了报告。如果你运行这个代码,它会给出像['wub']这样的输出,但是我只想要wub而不是括号或引号。所以这里需要做些什么修改。你知道吗

非常感谢你的帮助。你知道吗


Tags: 字符串代码restringis报告uri寄存器
2条回答

您可以使用re.search()(或re.match()-取决于您的需要)并获取捕获组:

>>> import re
>>> s = "RegisterParameter uri wub {"
>>> match = re.search("RegisterParameter uri ([^ ]*) {", s)
>>> match.group(1) if match else "Nothing found"
'wub'

另外,您可能希望使用\w*,而不是[^ ]*\w匹配任何单词字符。你知道吗

另请参见:

RegisterName是只有一个str元素的list。如果问题只是打印您可以尝试:

print 'RegisterName is :', RegisterName[0]

输出:

RegisterName is : wub

PS:

  • 如果不确定变量的类型,请尝试打印:

    print type(RegisterName)
    
  • 我建议您使用Python conventions,名称为SomeName的标识符通常用作类的名称。对于变量,可以使用some_nameregister_name

相关问题 更多 >