正则表达式 Python 分组 [重复]
Posted
技术标签:
【中文标题】正则表达式 Python 分组 [重复]【英文标题】:Regex Python Grouping [duplicate] 【发布时间】:2019-01-25 12:31:39 【问题描述】:我正在尝试生成以下“查询 ID:XYZABC”
我的代码如下来自一个 .txt 文件,该文件具有以下“Query= xyxysdfl;jas”的一个实例
#!/usr/bin/env python3
import re
for line in open("/home/example.txt"):
query_id = re.search(r"Query=(.*$)", line)
if query_id != None:
print("Query ID: " + query_id.group())
这会产生以下内容:
查询 ID:Query= xyslkjjdf
如何消除“查询=”?我以为我是通过包含 (.*$) 来做到这一点的?
【问题讨论】:
【参考方案1】:您需要获取第一个捕获的组:
query_id.group(1)
没有任何明确的组引用第 0 个组,即生成整个匹配项。
注意事项:
None
是 Python 中的单例,所以通过is
进行身份检查:
if query_id is not None:
或者更好,因为None
是假的,你可以做真假检查:
if query_id:
这不是绝对需要的,但为了便于阅读,您应该将行尾说明符 $
留在捕获的组之外:
(.*)$
考虑到注释,最终形式可能是:
query_id = re.search(r"Query=(.*)$", line)
if query_id:
print("Query ID: " + query_id.group(1))
【讨论】:
以上是关于正则表达式 Python 分组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章