[英]Python: RE issue with “re.findall()”
string = "RegisterParameter uri wub {"
RegisterName = re.findall("RegisterParameter uri ([^ ]*) {",string)
print 'RegisterName is :',RegisterName
参见上面的代码。 在这里我想通过正则表达式在字符串中找到寄存器名称。 我已经为此写了RE。 如果您运行此代码,它将给出类似['wub']的输出,但是我只希望wub而不是括号或引号。 那么要在这里进行哪些修改。
非常感谢您的帮助。
RegisterName
是仅包含一个str
元素的list
。 如果问题只是打印,您可以尝试:
print 'RegisterName is :', RegisterName[0]
输出:
RegisterName is : wub
PS:
当您不确定变量的类型时,请尝试打印它:
print type(RegisterName)
我建议您使用Python约定 ,名称如SomeName
标识符通常用作类的名称。 对于变量,可以使用some_name
或register_name
您可以使用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*
。 \\w
匹配任何单词字符。
也可以看看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.