繁体   English   中英

Python:RE问题与“ re.findall()”有关

[英]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_nameregister_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM