[英]python regex pattern matching
我需要从一个非常大的文件中提取用户名和ID。我使用的是python 2.7。 我需要打印在username =或prId =之后出现的任何内容,并使用引号“”。
输入:
1. username="null null”
2. username="test"
3. username="test name"
4. username="<unknown>"
5. prId="tokenKeyUser"
以下应匹配:
null null
test
test name
<unknown>
tokenKeyUser
目前我正在做以下事情:
re.search(r'username="(.*?)"', line)
re.search(r'prId="(.*?)"', line)
这能够找到除第1 行和第5行之外的所有模式。
它无法找到:1。“null null”2。“tokenKeyUser”
我在这做错了什么?
您可以使用布尔值来生成一个正则表达式以匹配所有字符。
username="(.*?)["”]|prId="(.*?)"
第1组将匹配用户名,第2组将匹配prId
for line in file:
for m in re.finditer(r'((?<=username=)|(?<=prId=))"([^"]+)["”]', line):
print(m.group(0))
null null”
"test"
"test name"
"<unknown>"
"tokenKeyUser"
我想我会为确切的输出要求提供一种方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.