python - python中的正则表达式结果过滤器

标签 python regex

我正在开发一个带有正则表达式的程序,我必须过滤它们,但我不知道如何过滤。我想匹配字符串中的每个 red,xxxx 或 xxxx,red 表达式,并将颜色 xxxx 放入一个组中。这是我的代码:

string = "blue,red   red,yellow   blue,yellow   red,green   purple red, ..."
regex = re.compile('(?:red,(?P<redfirst>\w+)|(?P<othercolorfirst>\w+),red)')

然后我写:

for match in regex.finditer(string):
    if match.group('redfirst')!= "None":
        print(match.group("redfirst"))

但我仍然获得如下打印:

None
yellow
green
None

我不希望出现“无”结果,如果可能,我必须以巧妙的方式跳过它们。 感谢您的帮助!

编辑 None 不带引号也不起作用

最佳答案

>>> import re
>>> regex = re.compile('(?:red,(?P<redfirst>\w+)|(?P<othercolorfirst>\w+),red)')

>>> string = "blue,red   red,yellow   blue,yellow   red,green   purple red, ..."

>>> for matches in regex.finditer(string):
...     if matches.group('redfirst'):
...         print matches.group('redfirst')
...
yellow
green
>>>

关于python - python中的正则表达式结果过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248640/

相关文章:

python - 将 session ID 添加到我的 Bokeh 应用程序确实会返回空白页面

javascript - 最后 XX 个数字的正则表达式

正则表达式匹配替换帮助

正则表达式作为 Lua 模式

python - 为什么 numpy 返回元组给我?

python - 如何在输入无效之前调用函数?

Python 字典吃掉了 ram

python - 按字符串向 pandas 数据框添加颜色

jquery - 正则表达式匹配 @"*"

java - 使用正则表达式从输入中解析字符串