string = "RegisterParameter uri wub {"
RegisterName = re.findall("RegisterParameter uri ([^ ]*) {",string)
print 'RegisterName is :',RegisterName
参见上面的代码。在这里,我想找到字符串中的寄存器名称,即正则表达式wub。我为此写了RE。如果你运行这段代码,它会给出像['wub']这样的输出,但我只希望wub不括号或引用。那么在这里做什么修改。
非常感谢你的帮助。
答案 0 :(得分:3)
RegisterName
是list
只有一个str
元素。如果问题是只是打印,您可以尝试:
print 'RegisterName is :', RegisterName[0]
<强>输出:强>
RegisterName is : wub
PS:
如果您不确定变量的类型,请尝试打印它:
print type(RegisterName)
我建议您使用Python conventions,名称如SomeName
的标识符通常用作类的名称。对于变量,您可以使用some_name
或register_name
答案 1 :(得分: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
匹配任何单词字符。
另见: