Python正则表达式专项练习「私教练习」

发布时间:2023年12月20日

你好,我是悦创。

这里有。20 个关于正则表达式(Regex)的Python编程题目,难度从简单到困难逐渐增加:

1. 找到文本中的所有日期

提取格式为“YYYY-MM-DD”的日期字符串。

text = "重要日期:2023-12-25, 2024-01-01"
dates = # your code here
assert dates == ["2023-12-25", "2024-01-01"]

2. 验证电子邮件地址

编写一个正则表达式,验证字符串是否是有效的电子邮件地址。

email = "example@test.com"
is_valid = # your code here
assert is_valid is True

3. 分割日志文件

给定一个日志文件的字符串,使用正则表达式按日志条目分割它。

log = "INFO:2023-12-17:This is log 1\nERROR:2023-12-18:This is log 2"
entries = # your code here
assert entries == ["INFO:2023-12-17:This is log 1", "ERROR:2023-12-18:This is log 2"]

4. 匹配电话号码

创建一个正则表达式来匹配不同格式的电话号码,例如“(123) 456-7890”或“123-456-7890”。

phone = "(123) 456-7890"
is_phone = # your code here
assert is_phone is True

5. 提取 URL

从文本中提取所有 URL,并确定它们是 HTTP 还是 HTTPS。

text = "Visit https://example.com and http://test.org"
urls = # your code here
assert urls == ["https://example.com", "http://test.org"]

6. 验证密码强度

检查密码是否包含至少8个字符,其中包括大写字母、小写字母、数字和特殊字符。

password = "Aa1!aa11"
is_strong = # your code here
assert is_strong is True

7. 寻找重复的单词

使用正则表达式找到字符串中重复的单词。

text = "This is a test test text"
duplicate = # your code here
assert duplicate.group() == "test test"

8. 提取括号内的内容

编写一个正则表达式来提取圆括号 () 中的内容。

text = "This is a (sample) text"
content = # your code here
assert content == ["sample"]

9. 识别货币金额

检测和提取字符串中的货币金额(例如,“$100.00”或“€50”)。

text = "The price is $100.00 or €50"
amounts = # your code here
assert amounts == ["$100.00", "€50"]

10. 识别时间格式

提取格式为“HH:MM”或“HH:MM:SS”的时间字符串。

text = "The current time is 14:30:15 or sometimes 09:45"
times = # your code here
assert times == ["14:30:15", "09:45"]

11. 验证车牌号

创建一个正则表达式来验证不同格式的车牌号。

plate = "ABC-1234"
is_plate = # your code here
assert is_plate is True

12. 匹配 IPv4 地址

写一个正则表达式来匹配有效的 IPv4 地址。

ip = "192.168.1.1"
is_ipv4 = # your code here
assert is_ipv4 is True

13. 提取 HTML 标签内容

从 HTML 文本中提取特定标签的内容。

html = "<div>Hello World!</div>"
content = # your code here
assert content == ["Hello World!"]

14. 匹配 Markdown 链接

识别并提取 Markdown 格式文本中的链接及其文本。

markdown = "This is a [link](http://example.com)"
link_text = # your code here
assert link_text == [("link", "http://example.com")]

15. 识别代码注释

从代码字符串中提取单行和多行注释。

code = "// This is a comment\nint x = 0; /* block comment */"
comments = # your code here
assert comments == ["// This is a comment", "/* block comment */"]

16. 匹配科学计数法数字

编写一个正则表达式来匹配科学计数法表示的数字(例如,“1.23e10”)。

number = "1.23e10"
is_scientific = # your code here
assert is_scientific is True

17. 解析复杂日志格式

给定复杂的日志条目,使用正则表达式提取关键信息,如时间戳、日志级别和消息。

log = "[2023-12-17 10:00:00, INFO] This is an information."
pattern = # your code here
match = re.search(pattern, log)
assert match.groups() == ("2023-12-17 10:00:00", "INFO", "This is an information.")

18. 匹配嵌套括号内容

编写正则表达式来处理并匹配嵌套的圆括号。

text = "This is a (nested (example) text) string"
nested_content = # your code here
assert nested_content == ["(nested (example) text)"]

19. 验证 XML/HTML 标签结构

检查字符串是否是正确嵌套和闭合的XML或HTML标签。

html = "<tag>content</tag>"
is_valid_html = # your code here
assert is_valid_html is True

20. 提取嵌入式语言元素

例如,从 JavaScript 或 CSS 嵌入在 HTML 中的代码段提取特定的函数或规则。

html = "<style>body { background-color: #fff; }</style>"
style_content = # your code here
assert style_content == ["body { background-color: #fff; }"]

每个题目都可以用来练习和提高使用 Python 中的正则表达式的技能。随着题目的进行,问题将变得更复杂,涉及更多高级的正则表达式概念和技巧。

Solution

https://bornforthis.cn/blog/2023/12month/python-regex.html

文章来源:https://blog.csdn.net/qq_33254766/article/details/135070656
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。