[英]Python Regex - How to account for end-of-line and end-of-file AND print only subsection of string?
我有一个由 A、B 或 C 字母指示的名称列表和分配给它们的组。 我想要做的是返回 A 组的所有成员。
我正在使用正则表达式查找以 A 结尾的所有行,然后我需要打印这些人的姓名,不包括组(A、B、C)
我遇到了几个问题:
import re
test_str = ("John Doe: A\n"
"Jane Washington: B\n"
"Geoffrey Grupp: A \n"
"Joseph Rose: A\n"
"Victoria Georges: C \n"
"Simon Murphy: A")
regex = r"^.*[A]$\n"
result= re.findall(regex, test_str, re.MULTILINE)
result
Out[8]: ['John Doe: A\n', 'Joseph Rose: A\n']
如您所见,我想念 Geoffrey Grupp 和 Simon Murphy。 此外,我不想在每个名称后打印“:A”。
你可以试试:
import re
test_str = ("John Doe: A\n"
"Jane Washington: B\n"
"Geoffrey Grupp: A \n"
"Joseph Rose: A\n"
"Victoria Georges: C \n"
"Simon Murphy: A")
regex = r"^(.*): A *$"
result= re.findall(regex, test_str, re.MULTILINE)
print(result)
它给:
['John Doe', 'Geoffrey Grupp', 'Joseph Rose', 'Simon Murphy']
解释:
'(.*)'
是一个捕获组 - 将返回的模式部分;' *'
匹配A
和行尾之间可能存在的空格字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.