Python 使用正则表达式进行模式匹配,查找和分组
我有一个脚本,它可以扫描一段文本,然后把找到的内容放到一个数组里。代码大概是这样的:
pattern = re.compile(r'<span id="first_name">(.+?)</span>')
matches = pattern.findall(str(my_text_file))
这个方法很好用,我可以从我的文本文件中提取出名字,然后把它们写入数组,做法是这样的:
for firstname in matches:
if firstname not in list_of_names:
list_of_names.append(firstname)
但是现在我需要扩展我的模式,想要提取两个组而不是一个,我不知道该怎么获取第二组。
比如说我有这样的内容:
pattern = re.compile(r'<span id="first_name">(.+?)</span><span id="last_name">(.+?)</span>')
matches = pattern.findall(str(my_text_file))
我该怎么把第二组(姓氏)放到另一个数组里呢?
1 个回答
2
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序根据不同的情况做出不同的反应。这就像是给程序设置了一些“条件”,当这些条件满足时,程序就会执行特定的操作。
举个例子,假设你有一个程序,它需要判断一个数字是奇数还是偶数。如果这个数字能被2整除,那就是偶数;如果不能,那就是奇数。程序会根据这个条件来决定接下来要做什么。
这种根据条件来执行不同操作的方式,通常叫做“条件语句”。在很多编程语言中,条件语句的写法可能会有所不同,但它们的基本原理是一样的。
希望这个解释能帮助你更好地理解条件语句的概念!
for match in matches:
first_names.append(match[0])
last_names.append(match[1])