正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的文本处理工具,广泛应用于各种编程语言和工具中。在HTML文档中,经常需要提取列表项(LI)标签的内容。本文将详细介绍如何使用正则表达式来轻松匹配和提取LI标签中的内容。

正则表达式基础

什么是正则表达式?

正则表达式是一种描述字符串模式的语言。它允许你定义一个模式,然后用这个模式来匹配、查找、替换或验证字符串。正则表达式通常用于文本处理任务,如搜索和替换文本中的特定模式。

正则表达式的组成

正则表达式由以下几部分组成:

  • 元字符:用于匹配特定的字符或字符集。
  • 字符集:表示一组字符。
  • 量词:用于指定匹配的次数。
  • 分组:用于对匹配模式进行分组。

常用正则表达式元字符

以下是一些常用的正则表达式元字符:

  • 点号(.):匹配除换行符以外的任意字符。
  • 星号(*):匹配前面的子表达式零次或多次。
  • 加号(+):匹配前面的子表达式一次或多次。
  • 问号(?):匹配前面的子表达式零次或一次。
  • 花括号({}):指定匹配的次数。
  • 方括号([]):匹配方括号内的任意一个字符。
  • 脱字符(^):匹配输入字符串的开始位置。
  • 美元符号($):匹配输入字符串的结束位置。

匹配LI标签内容

在HTML文档中,LI标签通常用于创建列表项。以下是一个简单的HTML列表示例:

<ul>
  <li>苹果</li>
  <li>香蕉</li>
  <li>橘子</li>
</ul>

要匹配LI标签中的内容,可以使用以下正则表达式:

<li>(.*?)</li>

这个正则表达式的解释如下:

  • <li>:匹配LI标签的开始。
  • (.*?):匹配LI标签内的任意内容,非贪婪匹配。
  • </li>:匹配LI标签的结束。

Python代码示例

以下是一个使用Python正则表达式匹配LI标签内容的示例:

import re

html_content = '''
<ul>
  <li>苹果</li>
  <li>香蕉</li>
  <li>橘子</li>
</ul>
'''

pattern = r'<li>(.*?)</li>'
matches = re.findall(pattern, html_content)

for match in matches:
    print(match)

输出结果为:

苹果
香蕉
橘子

总结

通过使用正则表达式,可以轻松地匹配和提取HTML文档中的LI标签内容。掌握正则表达式的基本概念和常用元字符,将有助于你在各种文本处理任务中更加高效地工作。