你好,我是悦创。
这里有。20 个关于正则表达式(Regex)的Python编程题目,难度从简单到困难逐渐增加:
提取格式为“YYYY-MM-DD”的日期字符串。
text = "重要日期:2023-12-25, 2024-01-01"
dates = # your code here
assert dates == ["2023-12-25", "2024-01-01"]
编写一个正则表达式,验证字符串是否是有效的电子邮件地址。
email = "example@test.com"
is_valid = # your code here
assert is_valid is True
给定一个日志文件的字符串,使用正则表达式按日志条目分割它。
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"]
创建一个正则表达式来匹配不同格式的电话号码,例如“(123) 456-7890”或“123-456-7890”。
phone = "(123) 456-7890"
is_phone = # your code here
assert is_phone is True
从文本中提取所有 URL,并确定它们是 HTTP 还是 HTTPS。
text = "Visit https://example.com and http://test.org"
urls = # your code here
assert urls == ["https://example.com", "http://test.org"]
检查密码是否包含至少8个字符,其中包括大写字母、小写字母、数字和特殊字符。
password = "Aa1!aa11"
is_strong = # your code here
assert is_strong is True
使用正则表达式找到字符串中重复的单词。
text = "This is a test test text"
duplicate = # your code here
assert duplicate.group() == "test test"
编写一个正则表达式来提取圆括号 ()
中的内容。
text = "This is a (sample) text"
content = # your code here
assert content == ["sample"]
检测和提取字符串中的货币金额(例如,“$100.00”或“€50”)。
text = "The price is $100.00 or €50"
amounts = # your code here
assert amounts == ["$100.00", "€50"]
提取格式为“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"]
创建一个正则表达式来验证不同格式的车牌号。
plate = "ABC-1234"
is_plate = # your code here
assert is_plate is True
写一个正则表达式来匹配有效的 IPv4 地址。
ip = "192.168.1.1"
is_ipv4 = # your code here
assert is_ipv4 is True
从 HTML 文本中提取特定标签的内容。
html = "<div>Hello World!</div>"
content = # your code here
assert content == ["Hello World!"]
识别并提取 Markdown 格式文本中的链接及其文本。
markdown = "This is a [link](http://example.com)"
link_text = # your code here
assert link_text == [("link", "http://example.com")]
从代码字符串中提取单行和多行注释。
code = "// This is a comment\nint x = 0; /* block comment */"
comments = # your code here
assert comments == ["// This is a comment", "/* block comment */"]
编写一个正则表达式来匹配科学计数法表示的数字(例如,“1.23e10”)。
number = "1.23e10"
is_scientific = # your code here
assert is_scientific is True
给定复杂的日志条目,使用正则表达式提取关键信息,如时间戳、日志级别和消息。
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.")
编写正则表达式来处理并匹配嵌套的圆括号。
text = "This is a (nested (example) text) string"
nested_content = # your code here
assert nested_content == ["(nested (example) text)"]
检查字符串是否是正确嵌套和闭合的XML或HTML标签。
html = "<tag>content</tag>"
is_valid_html = # your code here
assert is_valid_html is True
例如,从 JavaScript 或 CSS 嵌入在 HTML 中的代码段提取特定的函数或规则。
html = "<style>body { background-color: #fff; }</style>"
style_content = # your code here
assert style_content == ["body { background-color: #fff; }"]
每个题目都可以用来练习和提高使用 Python 中的正则表达式的技能。随着题目的进行,问题将变得更复杂,涉及更多高级的正则表达式概念和技巧。