返回

Python正则表达式:一题在手,掌握12种用法,天下我有

后端

前言

大家好,我是程序员晚枫。今天,我将用一道华为笔试题,带大家深入掌握一项Python技巧:正则表达式。

正则表达式简介

正则表达式是一种用来匹配字符串的强大工具。它可以帮助你查找、提取和替换字符串中的特定部分。正则表达式在许多编程语言中都有支持,包括Python。

华为笔试题

现在,让我们来看一下这道华为笔试题:

text = 'John Doe, 30, New York City, USA'

# 提取名字
name = re.search(r'^(\w+ \w+)', text).group(1)

# 提取年龄
age = re.search(r', (\d+), ', text).group(1)

# 提取城市
city = re.search(r', (.*?), ', text).group(1)

# 提取国家
country = re.search(r', USA
text = 'John Doe, 30, New York City, USA'

# 提取名字
name = re.search(r'^(\w+ \w+)', text).group(1)

# 提取年龄
age = re.search(r', (\d+), ', text).group(1)

# 提取城市
city = re.search(r', (.*?), ', text).group(1)

# 提取国家
country = re.search(r', USA$', text).group(1)

# 打印结果
print(name)
print(age)
print(city)
print(country)
#x27;
, text).group(1) # 打印结果 print(name) print(age) print(city) print(country)

解析

这道题要求我们从给定的文本中提取名字、年龄、城市和国家。我们可以使用正则表达式来完成这个任务。

首先,我们定义了一个字符串变量text,其中包含了要提取信息的文本。

接下来,我们使用re.search()函数来查找匹配正则表达式的第一个子字符串。我们使用r'^(\w+ \w+)'来匹配名字,r', (\d+), '来匹配年龄,r', (.*?), '来匹配城市,r', USA$'来匹配国家。

最后,我们使用group()方法来提取匹配的子字符串。

Python正则表达式用法总结

在这道题中,我们使用了以下12种Python正则表达式的用法:

  1. ^:匹配字符串的开头
  2. \w:匹配字母、数字和下划线
  3. +:匹配一个或多个前面的字符
  4. \d:匹配数字
  5. ,:匹配逗号
  6. .*:匹配任意数量的字符
  7. ?:匹配零个或一个前面的字符
  8. $:匹配字符串的结尾
  9. group():提取匹配的子字符串
  10. search():查找匹配正则表达式的第一个子字符串

结语

以上就是这道华为笔试题的解析。希望对大家有所帮助。

如果你想了解更多关于Python正则表达式的用法,可以参考以下资源:

练习题

现在,请你尝试使用正则表达式来解决以下问题:

  1. 从给定的文本中提取所有电子邮件地址。
  2. 从给定的文本中提取所有电话号码。
  3. 从给定的文本中提取所有网址。

如果你能解决这些问题,那么恭喜你,你已经掌握了Python正则表达式的基本用法。